在我的Rails 3.2应用中,我有User
,Comment
和Article
个模型。在一个视图中,我试图显示文章日期排序的所有用户评论(评论属于文章)。问题是,在我看来,当我尝试检索评论ID时,我得到文章ID。
***Models***
# user.rb
has_many :comments
# comment.rb
belongs_to :user
belongs_to :article
scope :by_article_date,
select("*, articles.date as article_date").
joins(:article).
order("article_date DESC")
# article.rb
has_many :comments
# users_controller
def comments
@user = current_user
@comments = @user.comments.by_article_date
end
# comments.html.erb
<% @comments.each do |comment| %>
<%= comment.id %> # shows the article id, but should be comment.id
<%= comment.article.id %> # shows article id correctly
<% end %>
有人可以帮我弄清楚发生了什么事吗?
答案 0 :(得分:0)
在你的范围内尝试:
scope :by_article_date, -> { joins(:article).order("articles.date DESC") }