我正在使用 Ruby on Rails,需要在我的 html.erb 文件之一中运行一段 Ruby 代码。我这样做吗:
<% def name %>
<% name = username %>
<%= name %>
或者像这样:
<% def name
name = username %>
<%= name %>
谢谢阅读。
如果您的视图中需要额外的函数,通常您可以在助手中声明它们。
对于每个控制器,如果有助手,它会自动加载。例如,如果您有一个 PeopleController,则在app/helpers
文件夹中应该有一个people_helper.rb
,它应该看起来像这样
module PeopleHelper
def name
#do something
username
end
end
另一种非常干净的选择是使用主持人 http://www.subelsky.com/2008/01/presenter-classes-help-with-rails.html pattern http://www.google.com/search?q=rails+presenter,但我认为这种情况不太常见(不幸的是)。
否则,如果您确实需要在 erb 视图中包含多行 ruby 代码(我试图避免这种情况),我更喜欢以下样式:
<%
counter_1 = 0
counter_2 = 1
do_some_more_prep_here
%>
<% @records.each do |rec|%>
<%# do something with the prepped date in each row %>
<% end %>
另外对我来说,代码缩进比 html 缩进更重要,所以我更喜欢类似的东西
<table>
<% @rows.each do |row| %>
<tr>
<td><%= row.item1 %></td>
<% if row.some_test %>
<td><%= row.item2 %></td>
<% end %>
</tr>
<% end %>
</table>
但我总是很想听到关于这件事的不同意见。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)