是否可以在不同的 View 中进行小的更改?
相同的部分在 index.html.erb
和 show.html.erb
中呈现如下。
index.html.erb
<%= render @schedules %>
显示.html.erb
<%= render @schedules %>
我想做的是不在 index.html.erb 中显示某些值。 (并在两个 erb 中显示一些值)
例如,我只想在show.html.erb
中显示start_at
和end_at
,并显示title
在两个 erb 中。
_schedule.html.erb
<% schedule.rooms.each_with_index do |a, idx| %>
<% a.events.each do |e| %>
<%= l(e.start_at) %>-<%= l(e.end_at) %> # display only show.html.erb
<%= e.title %> #display both erb
...
<% end %>
...
<% end %>
虽然我想出了创建两个部分的想法,但这与 DRY 政策相矛盾。
如果你能给我任何想法,我将不胜感激。
您可以使用controller.action_name
。
<% if controller.action_name == 'show' %>
<%= l(e.start_at) %>-<%= l(e.end_at) %> # display only show.html.erb
<% end %>
params
散列还包含 action_name。
我是一名优秀的程序员,十分优秀!