1

我有一个我正在使用的用户模型。每个用户都属于一个组。我正在尝试找到一种在注册时设置用户组的简单方法 - 无需创建自定义控制器来覆盖设计?

我的模型如下所示:

class User < ActiveRecord::Base
  belongs_to :group
end

class Group < ActiveRecord::Base
  has_many :users
end

这是表格:

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>

<%= f.label :email %><br />
<%= f.email_field :email %>

<%= f.label :password %><br />
<%= f.password_field :password %>

<%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %>

<%= label_tag :group_name %>
<%= text_field_tag :group_name %>

<%= f.submit "Sign up" %>

因为我只是想保存这个附加属性(group_name),所以我想避免创建一个全新的自定义设计控制器。有没有办法在模型级别保存用户组 - 也许有回调?或者有没有更好的方法来保存注册组?

谢谢!

4

1 回答 1

2

如果您已经使用了如上所示的自定义表单(也就是说,您没有使用 Devise 为您提供的表单),那么您应该没有理由需要覆盖 Devise 控制器。该组将与其他可批量分配的属性一起批量分配。

(就个人而言,就用户体验而言,将组选择设置为下拉列表或其他内容可能会很好,以便它可用,但这只是一个偏好问题。自动填充也可能很好。)

于 2012-07-08T05:13:12.743 回答