Ruby on rails Rails4:如何在关联表中显示名称?

Ruby on rails Rails4:如何在关联表中显示名称?,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我要做的是在details表中显示名称 我试过一些密码,但我做不到。 请告诉我如何显示该值 控制器代码: class BooksController < ApplicationController def show @book = Book.find(params[:id]) @article = Article.where(book_id: (params[:id])).order(day: :asc) end end 您想使用:至选项定义文章和细节之间的关联:

我要做的是在details表中显示名称

我试过一些密码,但我做不到。 请告诉我如何显示该值

控制器代码:

class BooksController < ApplicationController
  def show
    @book = Book.find(params[:id])
    @article = Article.where(book_id: (params[:id])).order(day: :asc)
  end
end

您想使用
:至
选项定义
文章
细节
之间的关联:

class Article < ActiveRecord::Base
  belongs_to :book
  has_many :details, through: :book
end
类文章
您还可以定义访问器以仅查找匹配日期的详细信息:

class Article < ActiveRecord::Base
  def matching_detail
    details.find_by_day day
  end
end
类文章
然后可以在视图中使用:

<% @article.each do |a| %>
  <%= a.matching_detail.try(:name) %>
<% end %>

最好为以下文章定义关联:

书中有很多细节

你也可以用这个

文章。包括(:详细信息)。其中(图书编号:(参数[:id])。订单(日期::asc)

Article.select('articles.name,details.name,…).join(:details)。其中([条件])


谢谢你的建议,@eirikir。我试过了,但出现了以下命名错误<代码>未定义的方法
为#`行中的#匹配#详细信息
。如果您能给我一些建议,我们将不胜感激。您是否将我上面定义的
匹配_detail
方法添加到了您的文章模型中?谢谢您的评论,@eirikir。我编辑错了文件。在文章模型处编辑后,它可以工作。虽然我对这段代码的了解有限,但我会了解它工作的原因。谢谢你的建议,@rakeshp。我试过很多次了。
class Article < ActiveRecord::Base
  belongs_to :book
  has_many :details, through: :book
end
class Article < ActiveRecord::Base
  def matching_detail
    details.find_by_day day
  end
end
<% @article.each do |a| %>
  <%= a.matching_detail.try(:name) %>
<% end %>