Han*_*nXu 7 ruby-on-rails devise
我有一个表单:remote => true表示它将通过ajax提交.
在控制器中,我有这样的代码:
before_filter: authenticate_user!, :only => [:create]
Run Code Online (Sandbox Code Playgroud)
因为我只允许确认的用户创建资源.
但是,当身份验证失败时,设计会提高一个
Completed 401 Unauthorized
Run Code Online (Sandbox Code Playgroud)
并且不会呈现不显眼的javascript.
但我希望事情是这样的:
设计在flash中设置一些消息,并渲染我的.js.erb,然后我向用户显示flash.
怎么实现呢?
Pio*_*ior 10
这很有趣但是将devise.rb http_authenticatable_on_xhr更改为false
config.http_authenticatable_on_xhr = false
Run Code Online (Sandbox Code Playgroud)
为我做了诀窍......没有覆盖authenticate_user!方法
注意:我还添加了:js到导航格式
config.navigational_formats = [:"*/*", "*/*", :html, :js]
Run Code Online (Sandbox Code Playgroud)
你需要做你自己的authenticate_user!动作,在这个动作中你可以得到你想要的行为。
def authenticate_user!
unless current_user
render 'my_js'
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6283 次 |
| 最近记录: |