因此,我一直在墙上撞了我的头六个小时。我已经得到这个工作,似乎有一切都完全一样。我得到一个未经许可的参数:测试错误。这是我的布局:不允许的参数接受嵌套属性
User.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嵌套属性部分,和许多其他的东西。
检查[文档](https://github.com/plataformatec/simple_form/wiki/Nested-Models),发现它们是如何传入' :使用'simple_fields_for'方法时,使用“parts”而不是'@ parts'(在你的情况下用“test”替换“parts”)。我只使用Rails作为API服务器,所以我不能说这是否会解决您的问题... –