【发布时间】:2016-03-20 16:22:09
【问题描述】:
所以我已经把头撞到墙上整整六个小时了。我之前已经让它工作了,而且似乎一切都完全相同。我收到 Unpermitted parameters: test 错误。这是我的布局:
用户.rb
has_many :tests
accepts_nested_attributes_for :tests, reject_if: :all_blank, allow_destroy: true
Test.rb
belongs_to :user
用户控制器
def update
current_user.update_attributes(user_params)
redirect_to root_path
end
def user_params
params.require(:user).permit(:name, :email, :tests_attributes => [:id, :response])
end
测试控制器
def show
@test = Test.where(:secure_id => params[:id]).first
@user = User.find(@test.user_id)
end
def test_params
params.require(:test).permit(:user_id, :test_name, :secure_id)
end
测试/show.html.erb
<%= simple_form_for @user, :url => admin_user_path(@user) do |u| %>
<%= u.simple_fields_for @test do |as| %>
<%= as.label :response %><br>
<%= as.text_area :response, :class => "tinymce", :rows => 15 %><br>
<% end %>
<table>
<tr>
<td>
<%= u.input :field_name, :label => false, :boolean_style => :inline %>
</td>
<td>Field Name</td>
</tr>
</table>
<br /><br />
<%= u.submit 'Update User', :class => 'btn btn-primary' %>
<br /><br />
<% end %>
由于公司政策,我更改了名称并省略了代码。如果需要更多代码,请告诉我,我会提供。
我浏览了大量的 stackoverflow 帖子,阅读了 simple_forms 嵌套属性部分以及许多其他内容。
【问题讨论】:
-
检查docs,注意在使用
simple_fields_for方法时它们是如何传入:parts而不是@parts(在您的情况下将“parts”替换为“test”)。我只使用 Rails 作为 API 服务器,所以我不能说这是否能解决你的问题......
标签: ruby-on-rails ruby