在我的Rails 5应用程序中,我使用Devise作为我的User
模型(不使用Confirmable with Devise)。我需要做的是在使用其他Flash消息创建User
后替换现有的Flash消息,具体取决于country_code
的{{1}}值。
例如,
User
我检查了Devise's documentation,但无法弄清楚如何创建两个不同版本的成功注册消息。
我能找到的最接近的是与新会话相关的消息:
Show custom message only on sign_in
Dynamic Flash Messages in Devise
如何更改Devise的标准代码以创建变量欢迎/成功消息?
答案 0 :(得分:0)
生成设计控制器:
test
这将在 app / controllers / users 目录中生成所有设计控制器。
在routes.rb中添加以下路线:
rails generate devise:controllers users
然后,覆盖devise_for :users, :controllers => { :registrations => 'users/registrations'}
操作以根据需要显示Flash消息:
您可以根据需要设置create
,而不是set_flash_message!
。
flash[:notice] = "You're in Canada!"
答案 1 :(得分:0)
创建用户后,Devise将调用after_sign_up_path_for
方法以了解重定向到的位置。您可以通过覆盖此方法来更改Flash消息。
class RegistrationsController < Devise::RegistrationsController
...
protected
def after_sign_up_path_for(resource)
# after the user is successfully saved
if resource.country_code == 'CA'
flash[:notice] = "You're in Canada!"
else
flash[:notice] = "You're international!"
end
super
end
end
希望它有所帮助。