你如何让simple_form使用urls的基类而不是子类?

Fir*_*lem 4 html ruby forms ruby-on-rails simple-form

每当我使用simple_form_for()时,它默认为"my_subclasses_path"而不是"my_base_classes_path".我怎么能告诉它不使用子类?

在我的例子中,我有一个User对象,但也有很多子类.我想使用标准用户URL,因为所有子类对这些表单的工作方式相同.

另外,我想阻止simple_form在子类之后命名属性.例如,如果子类是"Admin",我希望提交的参数是"params [:user]"而不是"params [:admin]".

我发现以上内容真的很奇怪,因为表单实际上是"user [first_name]"而不是"admin [first_name]" - 但是simple_form似乎想让它成为params [:admin].

基本上,子类导致simple_for不能正常运行.我希望有一个选项

base_class => 'User'
Run Code Online (Sandbox Code Playgroud)

这将处理所有这些事情.

小智 19

如果您传入:url选项,如rafaelfranca建议,以及:as选项,它应该正常工作.例如:

simple_form_for(@admin, :url => user_path(@admin), :as => :user)
Run Code Online (Sandbox Code Playgroud)

这给了我正确的表单操作和参数(例如user [name]而不是admin [name]).