创建动作的几个模型

时间:2013-01-19 17:30:07

标签: ruby-on-rails ruby ruby-on-rails-3

我有三种模式:

  • 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">]

我怎样才能获得名字和姓氏?

1 个答案:

答案 0 :(得分:0)

然后在模型中创建一个方法,只获取文章作者的名字和姓氏:

# somewhere in models/article.rb
def article_authors_names
  article_authors.select('first_name, last_name')
end

您可以重命名为authors_names,只需致电@article.authors_names