view中好用的小知识
尽量只出现跟前端有关系的东西,不要把判断以及逻辑相关的code放在view。
不好的做法:
|
|
比较好的做法是将if else 改写在partial中,并把current_user.name用helper包起来。这样html code可读性大大提升。
Helper
Helper使用情景:
- 产生的html code 需要与原始码逻辑混合,但不希望view里面太乱
- 需要与rails内建的一些方便的helper交叉使用
helper的好处:
- Don‘t repeat youeself 代码不重复
- Good Encapsulation 好的封装性
- 提供view模版良好的组织
- 易于修改代码
|
|
在view中可以直接取用如下
|
|
partial
partial 就是代码中的一小段,通常使用在html中,让view的code更干净,将重复的区块切成独立的partial,比如首页,footer,表单,等,让任何页面都能用这段partial,而不用重复写一摸一样的code。
partial使用情景
- long template 如果html超过两页
- highly duplicated html内容高度重复
- independent blocks 可独立作为功能的区块
_topic_list.html.erb
|
|
index.html.erb
|
|
collection partial
上例可以改写
_topic_list.html.erb
|
|
index.html.erb
|
|
partial&helper
partial 复杂处理大段html code或是之后利用ajax render出来的片段
helper则负责跟逻辑判断有关的东西
比如:
topics_helper.rb
|
|
_topic_info.html.erb
|
|
yiled in view
yield就是会被替换成样板的地方,基本上所有的html.erb最后都会显示在
还可以用content_for让content替换掉
Nested form
|
|
|
|
view/admin/products/_form.html.erb
|
|