我的数据库里有一双袜子has_many鞋。一只鞋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 %>如何在.each中显示属于我鞋子的鞋带,使它们在我的视图中在一起,而无需在控制器之外进行查询?如果我的鞋带has_many字符串,这种方法适用吗?
发布于 2017-03-02 02:22:24
你可以在你的鞋模型中有一些东西,例如:
def shoelaces_for_shoe
Shoelace.where(shoe_id: id).shoelace_name
end那么在你看来:
<% @shoes.each do |shoe| %>
<%= shoe.shoe_name %>
<%= @shoe.shoelaces_for_shoe %>
<% end %>https://stackoverflow.com/questions/42545654
复制相似问题