簡體   English   中英

Rails has_many在單獨的表單/視圖中嵌套了屬性

[英]Rails has_many nested attributes in a separate form/view

我發現了很多有關如何構造多模型表單和多模型顯示的示例。 但是,如果我想使用單獨的表格和顯示該怎么辦?

post.rb:

class Post < ActiveRecord::Bas
  has_many :comments, dependent: :destroy
  attr_accessible :comments_attributes
  accepts_nested_attributes_for :comments
end

comment.rb:

class Comment < ActiveRecord::Base
  belongs_to :post
end

posts_controller.rb:

def new
  @post = Post.new
  @post.comments.build
  ...
end

routes.db:

resources posts do
  resources comments
end

我有一個鏈接可以在我的帖子索引中發布評論索引:

意見/職位/ index.html.erb:

...
<%= link_to 'Comments', post_comments_path(post) %>
...

Post和Comment都有自己的支架生成形式(不嵌套)。

<%= 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下) 之后,帖子評論索引中的表為空!

請幫忙。 謝謝 :)

我想到了。

在評論表中應為:

<%= form_for([@post, @comment]) do |f| %>
...

路徑應按以下方式使用:

post_comments_path(@post)
edit_post_comment_path(@post,@comment)

等等

在評論控制器中:

def index
    @post= Post.find(params[:post_id])
    @comments= @post.comments.all
...

def show
    @post= Post.find(params[:post_id])
    @comment= @post.comments.find(params[:id])
...

等等

希望其他人會發現這個有用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM