lew*_*rin 5 forms ruby-on-rails ruby-on-rails-3 simple-form
当我使用 simple_form_for @model 创建表单时,提交后的参数将所有属性分组在 params[model] 下。如何让 simple_form 删除此分组并直接发送(在 params root 下)?
<%= simple_form_for @user, do |f| %>
<%= f.input :name %>
<%= f.input :password %>
<%= f.submit %>
现在,名称和密码属性通常会在 params[:user][:name]、params[:user][:password] 等下发送。如何让 simple_form 将这些属性发布为 params[:name]、params[:密码]等?
谢谢!
拉姆库马尔
ps:如果您想知道为什么我需要这个,我的应用程序的大部分是用作 API,并且我构建了一组方法来验证请求,该请求期望某些属性位于根中。在极少数情况下(忘记密码),我实际上需要提供一个表单,并且我正在寻找一种使用这些方法的方法。
我能想到的两种方法:
第一个是,不要使用simple_form来构建表单,而是手动或使用form_tag和*_tag方法来完成。这些将使您能够更仔细地指定表单中使用的参数。
但是,如果您想保留simple_form,则让它调用不同的控制器操作。重构控制器,将逻辑剥离到单独的方法中。就像是:
class UsersController
  def create_from_api
    controller_logic(params)
  end
  def create_from_form
    controller_logic(params[:user])
  end
  def controller_logic(params)
    [actual work happens here]
  end
end
| 归档时间: | 
 | 
| 查看次数: | 1221 次 | 
| 最近记录: |