4

每当我使用 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'

那将处理所有这些事情。

4

2 回答 2

19

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

simple_form_for(@admin, :url => user_path(@admin), :as => :user)

这为我提供了正确的表单操作和参数(例如,用户 [名称] 而不是管理员 [名称])。

于 2012-03-26T12:23:08.683 回答
4

:url将选项传递给simple_form_for.

例如。:simple_form_for(@admin, :url => users_path)

于 2011-05-23T02:41:02.713 回答