【发布时间】:2010-11-08 21:47:22
【问题描述】:
如何在控制器中添加使用 devise_invitable 的功能。我想在邀请中添加其他字段,例如 message、proeject_id,但不知道从哪里开始?
这里是 devise_invitable:link text
【问题讨论】:
标签: ruby-on-rails devise
如何在控制器中添加使用 devise_invitable 的功能。我想在邀请中添加其他字段,例如 message、proeject_id,但不知道从哪里开始?
这里是 devise_invitable:link text
【问题讨论】:
标签: ruby-on-rails devise
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 目录中查找合适的 controller/model/view/helper 文件,然后在 vendor/gems 中,最后在定义了引擎。
【讨论】: