有没有经验的devise_invitable?

时间:2010-11-08 21:47:23

标签: ruby-on-rails devise

如何添加在控制器中使用devise_invitable的功能。我想添加其他字段,如message,proeject_id以及邀请,但不知道从哪里开始?

这是devise_invitable:link text

1 个答案:

答案 0 :(得分:1)

devise_inevitable引擎定义了两个视图文件和一个控制器。您很可能不需要对它定义的控制器执行任何修改。向用户发送邀请的表单已定义here,您将覆盖视图的呈现,如下所示:

#app/views/invitations/new.html.erb
<% form_for resource_name, resource, :url=> invitation_path(resource_name) do |f| %>
  <!-- Totally sweet new user invitation code goes here -->
<% end %>

包含用户在点击其电子邮件中的链接后完成注册的代码的表单为here,您将覆盖它的呈现,如下所示:

#app/views/invitations/edit.html.erb
<% form_for resource_name, resource, :url=> invitation_path(resource_name), :html=>{:method => :put } do |f| %>
  <!-- Totally sweet new user registration information goes here. -->
<% end %>

第一个视图是实际创建资源对象的内容,因此很可能是您希望为用户设置消息以及他们被邀请访问的项目。您可能还想覆盖app/views/devise_mailer/invitation.html.erb以更改用户收到的电子邮件。

要覆盖invitations controller,您需要执行此操作:

#app/controllers/devise/invitations_controller.rb
class Devise::InvitationsController < ApplicationController
  def create
    #totally rad create stuff here.
  end
end

Devise及其扩展是所有Rails引擎,因此请求将首先在app目录中查找适当的控制器/模型/视图/帮助文件,然后在vendor / gems中查找,最后在定义发动机。