如何渲染同一文件的不同版本?
How to render different versions of the same file?
例如我有这个文件:
_goal.html.erb
<table>
<tr>
<%= goal.name %>
<span class="label label-info"><%= goal.deadline.strftime("%d %b %Y") %></span>
</tr>
</table>
正在从 主页 页面呈现:
<h1><b>Goals</b></h1>
<%= render @unaccomplished_goals %>
<%= render @accomplished_goals %>
<% end %>
我们如何用 <span class="label label-info-success">
包装一个已完成的目标,但如果它是一个未完成的目标,请保持它 <span class="label label-info">
?
在控制器中:
@accomplished_goals = current_user.goals.accomplished
@unaccomplished_goals = current_user.goals.unaccomplished
这是我的最近的尝试,这让他们全部 -info
:
<% if @unaccomplished_goals == true %>
<span class="label label-info"><%= goal.deadline.strftime("%d %b %Y") %></span>
<% else @accomplished_goals == true %>
<span class="label label-warning"><%= goal.deadline.strftime("%d %b %Y") %></span>
<% end %>
也许你会有更多的运气:)
非常感谢。
创建一个 returns 正确 类 目标状态的辅助方法。在 application_helper.rb:
def deadline_label_class(goal)
if goal.accomplished?
'label label-info'
else
'label label-warning'
end
end
这假设 Goal
有一个名为 accomplished?
的实例方法,其中 returns true/false。如果该方法不存在或使用其他一些条件,您可能必须编写该方法。
然后使用_goal.html.erb模板中的助手:
<table>
<tr>
<%= goal.name %>
<span class="<%= deadline_label_class(goal) %>">
<%= goal.deadline.strftime("%d %b %Y") %>
</span>
</tr>
</table>
例如我有这个文件:
_goal.html.erb
<table>
<tr>
<%= goal.name %>
<span class="label label-info"><%= goal.deadline.strftime("%d %b %Y") %></span>
</tr>
</table>
正在从 主页 页面呈现:
<h1><b>Goals</b></h1>
<%= render @unaccomplished_goals %>
<%= render @accomplished_goals %>
<% end %>
我们如何用 <span class="label label-info-success">
包装一个已完成的目标,但如果它是一个未完成的目标,请保持它 <span class="label label-info">
?
在控制器中:
@accomplished_goals = current_user.goals.accomplished
@unaccomplished_goals = current_user.goals.unaccomplished
这是我的最近的尝试,这让他们全部 -info
:
<% if @unaccomplished_goals == true %>
<span class="label label-info"><%= goal.deadline.strftime("%d %b %Y") %></span>
<% else @accomplished_goals == true %>
<span class="label label-warning"><%= goal.deadline.strftime("%d %b %Y") %></span>
<% end %>
也许你会有更多的运气:)
非常感谢。
创建一个 returns 正确 类 目标状态的辅助方法。在 application_helper.rb:
def deadline_label_class(goal)
if goal.accomplished?
'label label-info'
else
'label label-warning'
end
end
这假设 Goal
有一个名为 accomplished?
的实例方法,其中 returns true/false。如果该方法不存在或使用其他一些条件,您可能必须编写该方法。
然后使用_goal.html.erb模板中的助手:
<table>
<tr>
<%= goal.name %>
<span class="<%= deadline_label_class(goal) %>">
<%= goal.deadline.strftime("%d %b %Y") %>
</span>
</tr>
</table>