Rails中SimpleForm是否有与form_for的:scope选项等效的功能?
SimpleForm 与 Rails form_for :scope 选项的对等配置
SimpleForm 直接兼容 Rails 原生 form_for 的 :scope 选项,功能完全对等,不需要额外的特殊配置。
基础用法
你可以在调用 simple_form_for 时直接传入 :scope 参数,作用和原生 form_for 完全一致:修改表单提交时的参数外层命名空间,覆盖默认的模型类名前缀。
示例代码如下:
# 原生 form_for 写法,提交参数结构为 {admin: {name: "xxx"}} form_for @user, scope: :admin do |f| f.text_field :name end # SimpleForm 等效写法,提交的参数结构和上面完全相同 simple_form_for @user, scope: :admin do |f| f.input :name end
全局默认配置
如果你需要给所有 SimpleForm 表单统一设置默认 scope,可以在 SimpleForm 的初始化文件中添加全局配置:
# config/initializers/simple_form.rb SimpleForm.default_scope = :your_custom_scope
全局配置生效后,所有未单独指定 :scope 选项的表单,都会默认使用该配置值作为参数前缀。
内容的提问来源于stack exchange,提问作者Marat
相关产品推荐
相关产品推荐

