form_tag是否适用于Simple_form?

Lea*_*RoR 39 ruby-on-rails simple-form ruby-on-rails-3.1

我有一个正在使用的表单,form_tag并且不确定如何将它与simple_form gem一起使用.这是我的表单看起来的样子:

<%= form_tag create_multiple_prices_path, :method => :post do %>

  <% @prices.each_with_index do |price, index| %>
    <%= fields_for "prices[#{index}]", price do |up| %>
      <%= render "fields", :f => up %>
    <% end %>
  <% end %>

  <%= submit_tag "Done" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

可以吗?如何form_tag更改正确使用simple_form?使用它时fields_for怎么样?新手可以使用一些帮助.

谢谢.

bar*_*own 136

即使您没有创建与模型绑定的表单,也可以使用simple_form.

以此登录表格为例:

<%= simple_form_for :signin, { url: signin_path } do |f| %>
  <%= f.input :email %>
  <%= f.input :password %>
  <%= f.button :submit, "Sign In" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

这将产生如下的参数:

{
  ...
  "signin" => {
    "email"=>"test@test.com",
    "password"=>"[FILTERED]"},
    "commit"=>"Sign In"
   }
 }
Run Code Online (Sandbox Code Playgroud)

在您的控制器中,您可以使用以下命

params[:signin][:email] ...
Run Code Online (Sandbox Code Playgroud)


Ine*_*neu 17

simple_form是一个包装器form_for,而不是form_tag.您可以使用simple_form_for而不是创建具有指定内容的标记form_for,但它与简单形式无关.form_tag<form>


Mau*_*uro 7

你可以避免使用

params[:signin][:email]
Run Code Online (Sandbox Code Playgroud)

运用

<%= f.input :email, input_html: { name: "email" } %>
Run Code Online (Sandbox Code Playgroud)

所以

params[:email]
Run Code Online (Sandbox Code Playgroud)