加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – simple_form_for:从params中删除根模型名称

发布时间:2020-12-17 02:15:28 所属栏目:百科 来源:网络整理
导读:当我使用simple_form_for @model创建表单时,提交后params具有在params [model]下分组的所有属性.我如何让simple_form放弃这个分组而是直接发送它(在params root下)? %= simple_form_for @user,do |f| %%= f.input :name %%= f.input :password %%= f.submit
当我使用simple_form_for @model创建表单时,提交后params具有在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 [:密码]等?

谢谢!
Ramkumar

ps:如果你想知道为什么我需要这个,我的应用程序的大部分是作为一个API,我已经构建了一组方法来验证一个期望一些属性在root中的请求.在极少数情况下(忘记密码),我实际上需要提供一个表单,我正在寻找一种方法来使用这些方法.

解决方法

我能想到的两种方式:

第一个是,不要使用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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读