,此方法是否适用
在我的数据库中,袜子has_many鞋子。鞋子的鞋子。
create_table "socks", force: :cascade do |t|
t.string "sock_name"
end
create_table "shoes", force: :cascade do |t|
t.integer "sock_id"
t.string "shoe_name"
end
create_table "shoelaces", force: :cascade do |t|
t.integer "shoe_id"
t.integer "shoelace_name"
end
在袜子的视图中,我想展示袜子拥有的所有鞋子,所有鞋子都拥有的鞋带。
在我的控制器中,我有:
def show
@sock = Sock.find(params[:id])
@shoes = @sock.shoes
@shoelaces = Shoelace.where(shoe: @shoes)
end
我现在正在运行这样的事情:
<% @shoes.each do |shoe| %>
<%= shoe.shoe_name %>
<%= Shoelace.where(shoe: shoe).shoelace_name %>
<% end %>
我如何在a内的鞋子上显示属于鞋子的鞋带,以便它们在我看来没有控制器外面没有查询的情况下?如果我的鞋带has_many字符串?
您可以在鞋类模型中使用一些东西,例如:
def shoelaces_for_shoe
Shoelace.where(shoe_id: id).shoelace_name
end
然后在您的视图中:
<% @shoes.each do |shoe| %>
<%= shoe.shoe_name %>
<%= @shoe.shoelaces_for_shoe %>
<% end %>