因此,我一直在牆上撞了我的頭六個小時。我已經得到這個工作,似乎有一切都完全一樣。我得到一個未經許可的參數:測試錯誤。這是我的佈局:不允許的參數接受嵌套屬性
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服務器,所以我不能說這是否會解決您的問題... –