Ruby on rails Rails4:如何在关联表中显示名称?
我要做的是在details表中显示名称 我试过一些密码,但我做不到。 请告诉我如何显示该值 控制器代码: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 您想使用:至选项定义文章和细节之间的关联:
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 %>