我有三个模型:
-
User (first_name, last_name, mail)
-
Article (name, info)
-
Article_Author (user_id and article_id)
在Article_controller
中,create
的动作如下:
def create
@article = article.new(params[:article])
@article_author = @article.article_authors.build(params[:article_authors])
@article_authors.user_id = current_user.id
respond_to do |format|
if @article.save
format.html { redirect_to @article, :flash=>{:notice=>'Article was successfully created.'} }
else
format.html { render action: "new" }
end
end
end
看起来没问题,因为在Article_Author
表中,我可以看到user_id
等于当前的用户id, article_id
是当前的文章id。在视图中,当我写入<%= @article.article_authors %>
时,它给出了整个用户数组:[#<ArticleAuthors id: 1, user_id: 2, article_id: 10, created_at: "2013-01-15 18:46:39", updated_at: "2013-01-15 18:46:39">]
.
我怎样才能知道名字和姓氏呢?
然后在模型中创建一个方法,只获取文章作者的姓和名:
# somewhere in models/article.rb
def article_authors_names
article_authors.select('first_name, last_name')
end
可以重命名为authors_names
,直接调用@article.authors_names
。