0

私は3つのモデルを持っています:

  • User (first_name, last_name, mail)
  • Article (name, info)
  • Article_Author (user_id and article_id)

ではArticle_controllercreateアクションは次のようになります。

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

表では、これが現在のユーザーIDに等しく、が現在の記事IDでArticle_Authorあることがわかるため、問題ないように見えます。ビューでは、を書くと、ユーザーの配列全体が表示されます。user_idarticle_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">]

どうすれば名と名前を取得できますか?

4

1 に答える 1

0

次に、記事の作成者の名前と名前だけをフェッチするメソッドをモデルに作成します。

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

名前をに変更してauthors_names、単に呼び出すことができます@article.authors_names

于 2013-01-19T17:57:37.710 に答える