如何添加在控制器中使用devise_invitable的功能。我想添加其他字段,如message,proeject_id以及邀请,但不知道从哪里开始?
这是devise_invitable:link text
答案 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中查找,最后在定义发动机。