我的表单作为PATCH请求发布到正确的路由,但没有使用" params" ActionController::Parameters
中的键有一个键,表单是调用表单的路径,这是我的表单:
<%= simple_form_for applicants_profile_path, method: :patch do |f| %>
<%= f.input :first_name %>
<%= f.button :submit, "submit" %>
<% end %>
当我的控制器收到请求时,params有一个url而不是&#34; params&#34;
<ActionController::Parameters {"utf8"=>"✓",
"_method"=>"patch",
"authenticity_token"=>"BI...f0EDQ==",
"/dashboard/profile"=>{
"first_name"=>"dfasfdsafs",
},
"commit"=>"submit",
"controller"=>"applicants/profile",
"action"=>"update"} permitted: false>
这是为什么?而不是/dashboard/profile
它应该params
正确吗?
我还应该说这条路线是一个&#34;资源&#34;像这样的路线:
resource :applicant, only: [ :show, :update ], as: :profile, path: 'profile', controller: 'profile'
答案 0 :(得分:1)
答案实际上似乎与simple_form如何处理奇异资源的路由有关,答案是将ah=02h
添加到我的表单助手中:
url: applicants_profile_path
答案 1 :(得分:0)
您需要以简单形式传递对象,例如:
<%= simple_form_for @user do |f| %>
<%= f.input :username %>
<%= f.input :password %>
<%= f.button :submit %>
<% end %>
我想你的应该是:
<%= simple_form_for @applicant, method: :patch do |f| %>
<%= f.input :first_name %>
<%= f.button :submit, "submit" %>
<% end %>
或者
<%= simple_form_for applicants_profile_path(@applicant), method: :patch do |f| %>
#... you get the idea