我有一个简单的Rails 3应用程序,它有许多模型。我遇到问题的模型的简单概述是:
客户端模型
has_many :animals
动物模型
belongs_to :client
我能够做的是显示由同一客户拥有的其他动物的列表。
这样的事情:
<% @client.animals.each do |animal| %>
<%= animal.AnimalName %>
<% end %>
由于这是在Animal控制器中,我的示例代码将无法正常工作。任何指针都会受到赞赏。
更新
澄清一下,如果我有以下记录:
Danny (Client)
Cat (animal owned by Danny)
Dog (animal owned by Danny)
Rabbit (animal owned by Danny)
然后我去了狗的记录的节目视图,我想要一个列表,显示丹尼拥有的所有动物。 E.g。
Cat
Dog
Rabbit
理想情况下,排除当前查看的动物(在本例中为狗)。
我尝试了以下但是它似乎不起作用:
<% @client.animals.each do |client| %>
<%= @client.animal.AnimalName %>
<% end %>
答案 0 :(得分:2)
如果我理解正确,您有@animal
并希望展示@animal
所有者拥有的所有动物。这可以这样做:
<% @animal.client.animals.each do |animal| %>
<%= animal.AnimalName %>
<% end %>
更新
您只需在.where
上添加@animal.client.animals
:
@animal.client.animals.where('id != ?', @animal.id).each ...
在视图中执行此操作并不是一个好主意。所以我会在我的Animal模型中添加一个实例方法:
def other_animals_with_same_owner
client.animals.where('id != ?', id)
end
你可以这样做:
@animal.other_animals_with_same_owner.each ...