首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails has_many,属于单视图中的两次

Rails has_many,属于单视图中的两次
EN

Stack Overflow用户
提问于 2017-03-02 02:16:32
回答 1查看 35关注 0票数 0

我的数据库里有一双袜子has_many鞋。一只鞋has_many鞋带。

代码语言:javascript
复制
  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

在袜子视图中,我想展示一只袜子所拥有的所有鞋子,以及一只鞋所拥有的所有鞋带。

在我的控制器里我有:

代码语言:javascript
复制
def show
  @sock = Sock.find(params[:id])
  @shoes = @sock.shoes
  @shoelaces = Shoelace.where(shoe: @shoes)
end

我现在正在做这样的事情:

代码语言:javascript
复制
<% @shoes.each do |shoe| %>     
  <%= shoe.shoe_name %>
  <%= Shoelace.where(shoe: shoe).shoelace_name %>
<% end %>

如何在.each中显示属于我鞋子的鞋带,使它们在我的视图中在一起,而无需在控制器之外进行查询?如果我的鞋带has_many字符串,这种方法适用吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-02 02:22:24

你可以在你的鞋模型中有一些东西,例如:

代码语言:javascript
复制
def shoelaces_for_shoe
  Shoelace.where(shoe_id: id).shoelace_name
end

那么在你看来:

代码语言:javascript
复制
<% @shoes.each do |shoe| %>     
  <%= shoe.shoe_name %>
  <%= @shoe.shoelaces_for_shoe %>
<% end %>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42545654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档