在Rails 4中保存之前添加到集合的无效嵌套资源

时间:2013-08-19 20:29:10

标签: ruby-on-rails ruby-on-rails-4 nested-attributes

这是我的routes.rb

resources :posts do
    resources :comments
end

这是post / show.html.haml

.post
  %h1= @post.title
  %p= @post.content

  - @post.comments.each do |comment|
     .comment
        %h3= comment.name
        %p= comment.text

= form_for([@post, @post.comments.build])  do |f|
  = f.label :name
  = f.text_field :name
  = f.label :text
  = f.text_area :text
  = f.submit

问题在于,当我尝试保存无效评论时,它仍会被添加到@ post.com并打印出来。如果我刷新了无效的评论消失了,但我仍然希望尽可能避免这种情况 - 并且想知道最佳做法是什么?

目前,我正在通过此检查解决此问题:

- unless comment.invalid?

任何帮助将不胜感激! : - )

1 个答案:

答案 0 :(得分:0)

如果有人想知道,我通过以下方式解决了这个问题:

= form_for([@post, @comment = @comment || @post.comments.build)