我有一个Note模型,它可以包含图像链接附件(linktype =“image”或某些文本(linktype =“text)。当我显示注释时,显示方法会根据链接类型而改变。一个例子是:
<% @notes.each do |q| %>
<h2 class="title"><%= q.name %></h2>
<% if q.linktype == "image"%>
<img src="<%= q.link %>" />
<% elsif q.linktype == "text"%>
<%= q.text %>
<% end %>
<% emd %>
我必须在我的网站中以几个不同的视图显示注释,因此我不想多次重复查看代码,而是希望将它放在一个地方并从不同的视图中引用它。
我应该在应用程序助手中执行此操作吗?如果是这样,我是否将显示代码(如上面的代码)直接放入帮助程序中,还是有更好的方法?谢谢你的阅读。
答案 0 :(得分:4)
对于与某个实体无关的重复视图代码(不是,例如,users/show.html.erb
)创建一个小部件文件夹并在那里写下你的部分。我把我的小部件导航栏等等。
/app/views/widgets/widget1.html.erb
/app/views/widgets/widget2.html.erb
...
# some_view.html.erb
<%= render :partial => 'widgets/widget1' %>
以抽象的方式,我在助手和这种局部之间做出区分: