小编Dah*_*han的帖子

设计after_sign_in_path_for有效,但重定向不会发生

设计不会重定向到提供的网址after_sign_in_path_for.它实际上调用我的自定义after_sign_in_path_for.它会计算我希望它计算的url,但之后不会发生重定向.它保留在sign_in页面上,但实际登录不会发生.

我一直在尝试几个版本的设计:

gem 'devise'
Run Code Online (Sandbox Code Playgroud)

gem 'devise', :git => 'git://github.com/plataformatec/devise.git'
Run Code Online (Sandbox Code Playgroud)

结果相同.

我的习惯 after_sign_in_path_for

def after_sign_in_path_for(resource)
    str = stored_location_for(resource) || stored_location || root_path
    debugger
    str
end

def stored_location
    session.delete(:return_to)
end

def store_location
    session[:return_to] = request.fullpath
end
Run Code Online (Sandbox Code Playgroud)

正在被调用,它提供了正确的URL,str完全按照我的预期给出.调试器此时停止...

但是在cont页面停留之后sign_in,然而登录仍在进行.

我相信这不是我的代码问题.这可能是一个设计问题.能有它工作的任何人都可以与我分享Devise的确切版本,它与你合作.

ruby-on-rails devise

5
推荐指数
1
解决办法
1533
查看次数

Turbolinks 5 在某些链接上不起作用

对于这个看似简单的问题,我找不到任何答案。在我的 rails5 应用程序中,某些链接确实使用 turbolinks 来加载新页面。但有些只是启动整页重新加载。

该链接没有附加 js,该链接上未禁用 turbolinks。

此链接使用 turbolinks

= link_to qm_input_path('hour') do ...
<a class="navbar-brand" href="/qimen/hour/input"> ...
Run Code Online (Sandbox Code Playgroud)

在行动中它有

render layout: 'input'
Run Code Online (Sandbox Code Playgroud)

而这个链接没有

= link_to qm_chart_path(@foo, @bar), class: 'btn btn-default pull-right next' do ...
<a class="btn btn-default pull-right next" href="/qimen/hour/chart/foo/bar"> ...
Run Code Online (Sandbox Code Playgroud)

在行动中它有

render layout: guess_layout
Run Code Online (Sandbox Code Playgroud)

因此,没有任何内容明确阻止 turbolinks 工作。

为什么?

turbolinks ruby-on-rails-5 turbolinks-5

0
推荐指数
1
解决办法
598
查看次数