2017-10-27 3 views
0

私は自分のhas_manyを動かそうとしています。多くの人が私の見解ではうまくいきませんでした

プロジェクト:

  • 名:文字列
  • DESC:テキスト
  • タグ:参照

プロジェクトにhas_many:

私は2つのモデルましたタグを

タグ:

  • 名:文字列belongs_toの

タグ:プロジェクト

私project_controller:

def new 
    @project = Project.new 
    @project.tags = Tags.new 
end 

が、右側のビューは何ですか? 私はこのような何か試してみました:

= form_for @project do |f| 
= f.text_field :title 
= f.text_area :desc 

= f.fields_for :tags, @project.tags do |f_tags| 
    = f_tags.text_field :name, placeholder: 'Tag-Name' 

をしかし、私はこのようなエラーが出る:私は私のミスを取得できませんでした#<Tag::ActiveRecord_Associations_CollectionProxy:0x00007f4456cc7148>

ため 未定義のメソッド「名前」を。

複数のタグを追加するにはどうすればよいですか? 私の考えは、タグのあるdivを複製することでした。

答えて

1

私はあなたのタグの関係にbuildを呼び出して、fields_forにタグオブジェクトを渡したくないと思います。

コントローラー:

def new 
    @project = Project.new 
    @project.tags.build 
end 

ビュー:

= f.fields_for :tags do |f_tags| 
+0

おかげで、素晴らしい作品。しかし、私はそれを複数のタグにどのように使用できますか? – Evolutio

+0

'2times {@ project.tags.build}'は2つのタグを作成します。 –

関連する問題