使用设计邀请用户加入组织

时间:2017-01-28 20:34:03

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

我正在使用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

2 个答案:

答案 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,请覆盖邀请控制器的新操作和更新操作。 在新操作中,将新用户关联到该组,在更新操作中,允许外键,那么您应该一切顺利。