我正在使用Devise Invitable向新用户发送邀请。我有一个名为Organizations的用户相关表,其中包含belongs_to / has_many关系。当新用户接受邀请时,它表明必须指定组织。我如何确保自动将用户分配给邀请用户的组织,以便更新数据库并接受邀请?
谢谢!
在邀请令牌作为隐藏字段后进行建模,我添加了
<%= f.hidden_field :plan_id, :value => 1 %>
<%= f.hidden_field :organization_id, :value => 1 %>
到edit.html.erb邀请视图。这可以提交我正在寻找的信息,但我担心它不安全,因为这些参数可以调整。我也尝试将以下内容添加到邀请控制器中的编辑控件,但它什么也没做。
resource.plan_id = 1
resource.organization_id = 1
答案 0 :(得分:2)
我有类似的设置,您是否在create
控制器的invitations
部分尝试过类似的设置?
这种方法对我有用,但您需要覆盖默认的邀请控制器这样做。
def create
@invited_user = User.invite!({:email => "bob@someone.com"}, current_user)
@invited_user.update(organization: current_organization)
...
end
我在current_organization
文件中定义application_controller.rb
为:
def current_organization
@current_organization ||= current_user.organization
end
答案 1 :(得分:0)
如果您使用devise invitable,请覆盖邀请控制器的新操作和更新操作。 在新操作中,将新用户关联到该组,在更新操作中,允许外键,那么您应该一切顺利。