我按照说明理解他们。我觉得我做的一切都是正确的,但事情并非如此,因为它不起作用。如果有人可以请一分钟向我解释一下。
我有一个Blog#模型和一个像这样的Post#模型:
class Post < ActiveRecord::Base
belongs_to :blog
end
class Blog < ActiveRecord::Base
has_one :post, dependent: :destroy
accepts_nested_attributes_for :post
end
在我的博客#controller
中 def new
@blog = Blog.new
@blog.post.build
end
...
def strong_params
params.require(:blog).permit(:section, :category, :subcategory, :title, post_attributes: [:content])
end
以我的形式:
<%= form_for @blog, url: blog_create_path do |f| %>
<%= f.select :section, BlogHelper.sections.unshift('') %>
<%= f.fields_for :post do |post_fields| %>
<%= post_fields.text_area :content, id: 'blog_content', oninput: "this.editor.update()" %>
<% end %>
<%= f.submit 'Publish', class: 'btn btn-sm btn-primary' %>
<% end %>
我得到的错误是:
undefined method `build' for nil:NilClass
我按照此处的说明进行操作:http://guides.rubyonrails.org/association_basics.html - 我做错了什么?
答案 0 :(得分:1)
你的行动应该是
def new
@blog = Blog.new
@blog.build_post
end
参见上述guide
中的“4.2 has_one Association Reference”一章