Rails - 在查询中获取错误模型的ID

时间:2013-09-13 23:14:41

标签: ruby-on-rails ruby-on-rails-3.2 rails-activerecord

在我的Rails 3.2应用中,我有UserCommentArticle个模型。在一个视图中,我试图显示文章日期排序的所有用户评论(评论属于文章)。问题是,在我看来,当我尝试检索评论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 %>

有人可以帮我弄清楚发生了什么事吗?

1 个答案:

答案 0 :(得分:0)

在你的范围内尝试:

scope :by_article_date, -> { joins(:article).order("articles.date DESC") }