Rails设计保存关联模型

时间:2012-07-08 04:27:54

标签: ruby-on-rails ruby ruby-on-rails-3 devise

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

我的模特看起来像这样:

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),所以我想避免创建一个全新的自定义设计控制器。有没有办法在模型级别保存用户的组 - 可能有回调?或者有更好的方法来保存团队注册?

谢谢!

1 个答案:

答案 0 :(得分:2)

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

(就个人而言,就用户体验而言,将组选择设置为下拉或其他东西可能会很好,只是为了使它可用,但这只是一个偏好问题。自动填充也可能很好。)< / p>