マルチモデル フォームとマルチモデル ディスプレイを構築する方法については、多くの例が見つかりました。しかし、フォームとディスプレイを別々にしたい場合はどうすればよいでしょうか?
post.rb:
class Post < ActiveRecord::Bas
has_many :comments, dependent: :destroy
attr_accessible :comments_attributes
accepts_nested_attributes_for :comments
end
コメント.rb:
class Comment < ActiveRecord::Base
belongs_to :post
end
posts_controller.rb:
def new
@post = Post.new
@post.comments.build
...
end
ルート.db:
resources posts do
resources comments
end
投稿インデックスに投稿コメント インデックスへのリンクがあります。
ビュー/投稿/index.html.erb:
...
<%= link_to 'Comments', post_comments_path(post) %>
...
投稿とコメントには、それぞれ独自のスキャフォールド生成フォームがあります (ネストされていません)。
<%= form_for(@post) do |f| %>
...
<%= form_for(@comment) do |f| %>
...
コメント インデックスでは、投稿コメントをループします。
ビュー/コメント/index.html.erb:
<% @post = Post.find(params[:post_id]) %> //works fine
<% @post.comments.each do |comment| %>
...
<% end %>
しかし、(特定の投稿 ID の下に) 新しいコメントを追加した後、投稿コメント インデックスのテーブルは空です!
助けてください。ありがとう :)