Jam*_*ver 6 ruby ruby-on-rails devise query-string
我正在使用rails with devise进行注册.我还添加了一个邀请码,所以不是每个人都可以注册.
邀请代码通过查询字符串传输,如"/ users/sign_up?invite_code = wajdpapojapsd",并通过"f.hidden_field:invite_code,:value => params [:invite_code]添加到注册表单的隐藏字段中".
这非常有效.唯一的问题是,如果注册没有得到验证和拒绝,则设计重定向到"/ users"并丢失其中包含invite_code的查询字符串.
由于在尝试失败后电子邮件保留在注册表单中,我相信这也适用于邀请代码.作为最糟糕的解决方案重定向:在注册失败并丢失电子邮件后返回,但保留邀请代码,将比现在的工作方式更好.
编辑:到目前为止我已经为设计设置了一个注册控制器,但是不知道如何获得所需的行为.
有关如何保留查询字符串或仅提供邀请代码的任何帮助都很棒.
我现在找到了一个有效的解决方案.
我使用jstr的答案设置控制器设计并添加了"会话"行.
class MyRegistrationsController < Devise::RegistrationsController
prepend_view_path "app/views/devise"
def create
super
session[:invite_code] = resource.invite_code
end
def update
super
end
end
Run Code Online (Sandbox Code Playgroud)
之后我在devise/registrations/new.html.erb中添加了以下内容
<% if params[:invite_code]
@invite_code = params[:invite_code]
else
@invite_code = session[:invite_code]
end %>
Run Code Online (Sandbox Code Playgroud)
并将hidden_field更改为
<%= f.hidden_field :invite_code, :value => @invite_code %>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1758 次 |
最近记录: |