【发布时间】:2015-03-15 04:41:28
【问题描述】:
我收到以下错误
PostsController 中的 UnknownAttributeError#new
未知属性:company_id
帖子控制器
def new
@company = Company.find(params[:company_id])
@post = @company.posts.build
end
def create
@company = Company.find(params[:company_id])
@post = @company.posts.build(post_params)
if @post.save
redirect_to @post
else
render 'new'
end
end
private
def post_params
params.require(:post).permit(:title, :summary, :body)
end
路线
resources :companies do
resources :posts
end
型号
class Post < ActiveRecord::Base
belongs_to :company
end
class Company < ActiveRecord::Base
belongs_to :user, dependent: :destroy
has_many :posts
end
表格
<%= form_for (@post) do |f| %>
<div class="form-group">
<%= f.label :Post_Title %>
<%= f.text_field :title, class: "form-control", placeholder: "Post Title" %>
</div>
<div class="form-group">
<%= f.label :Post_Summary %>
<%= f.text_area :summary, class: "form-control", placeholder: "Post Summary" %>
</div>
<div class="form-group">
<%= f.label :Post_Post %>
<%= f.text_area :body, class: "form-control", placeholder: "The Post" %>
</div>
<div class="form-group">
<%= f.submit :Submit, class: "btn btn-success" %>
</div>
<% end %>
我希望每个帖子都属于一家公司,一个帖子在其表中具有company_id 属性。我不知道为什么这不起作用。
【问题讨论】:
-
请从您的帖子控制器发布您的视图和 post_params 方法。
-
添加视图和 post_params 方法
-
你知道,你仍然需要传递一个 company_id 才能让你的控制器在 params 哈希中接收它。您的视图和参数方法都不包括 company_id。这是您在创建表后在迁移中添加的列吗?
-
company_id在参数中传递(在 url 中)。 “新”视图甚至没有渲染,你有解决方案吗? -
将
company_id传递为hidden_field来自form
标签: ruby-on-rails ruby-on-rails-4