我用的导轨5和form_with
帮手。使用Form_for
的时候,而不是Form_with
我的代码工作。是:as
参数不Form_with
有效?
<%= form_with(model: @user_wizard , :as => :user_wizard, url: validate_step_wizard_path, local: true, builder: BsFormBuilder) do |f| %>
def user_wizard_params
params.require(:user_wizard).permit( :name )
end
然而,每次我试图提交表单时,参数提交:
{"utf8"=>"✓",
"authenticity_token"=>"LvRDsdfsdfsd3V0l4NLg14q2JWBdwkDPqUIu2l7SXDiioCtvMwW6Bv3ss/LPSS9+bdxiPIzjg==",
"current_step"=>"step1",
"wizard_user_step1"=>
{"name"=>"Name"}
}
我一直在关注这个.. https://medium.com/@nicolasblanco/developing-a-wizard-or-multi-steps-forms-in-rails-d2f3b7c692ce
然而,我的代码使用Form_with和他们使用的form_for。我不知道有什么区别。
这里的form_for使用@post底层模型的实例,例如作为模型
<%= form_for @post do |form| %>
<%= form.text_field :author %>
<%= form.submit “Create” %>
<% end %>
的form_tag是形式帮手但don't have
底层模型,你应该使用text_field的text_field_tag
<%= form_tag “/posts” do %>
<%= text_field_tag “post[author]” %>
<%= submit_tag “Create” %>
<% end %>
form_with将结合的form_for和的form_tag,后来这两个将与form_with统一
这里实施的form_for和使用的form_tag form_with,因为你可以看到下面的区别,如果你路过form_with一个模型,可以将工作的form_for但如果你路过它,然后它的URL将作为的form_tag
<%= form_with model: @post do |form| %>
<%= form.text_field :author %>
<%= form.submit “Create” %>
<% end %>
<%= form_with url: “/posts” do |form| %>
<%= form.text_field :author %>
<%= form.submit “Create” %>
<% end %>
同时您的问题有没有选项as
,你可以从这个链接more detail options检查