也许这比我想的简单,但有问题得到这个工作。我有一个的link_to块有条件的link_to块
<%= link_to(@animal.previous_animal, {class: 'prev-page'}) do
<span class="glyphicon glyphicon-chevron-left"></span> Meet <span class="name"><%= @animal.previous_animal.name %></span>, the <%= animal_breed(@animal.previous_animal) %>
<% end %>
但我只想要显示的链接,如果一个previous_animal一个的link_to中存在
def previous_animal
animal = self.class.order('created_at desc').where('created_at < ?', self.created_at)
animal.last if animal
end
通常我可以做
<%= link_to(@animal.previous_animal) if @animal.previous_animal %>
但我正在逐渐未定义的方法'名称'当我添加if子句,所以它仍然运行<%= @ animal.previous_animal.name%>,即使我认为它是在if语句内?
<%= link_to(@animal.previous_animal, {class: 'prev-page'}) if @animal.previous_animal do
<span class="glyphicon glyphicon-chevron-left"></span> Meet <span class="name"><%= @animal.previous_animal.name %></span>, the <%= animal_breed(@animal.previous_animal) %>
<% end %>
任何帮助表示赞赏。
您应该在控制器中定义'@ animal','@ previous_animal'和'@ next_animal'。那么你的逻辑就可以查询这些变量。您也可以在一次点击中加载它们。 – 2014-10-02 14:05:09
像@previous_animal = Animal.previous_animal?作为一个例子 – Richlewis 2014-10-02 14:16:03
'@previous_animal = @ animal.previous_animal' – 2014-10-02 14:49:19