Tag: redirect

设计:如果没有用户,则重定向以注册页面而不是登录

如果没有用户在场,我希望将请求重定向到“注册”页面而不是“登录”页面。 所以,为此,我重写了authenticate_user! 应用程序控制器中的方法: class ApplicationController < ActionController::Base protect_from_forgery with: :exception before_action :authenticate_user! protected def authenticate_user! redirect_to new_user_registration_path unless User.any? end end 这里的问题是页面没有正确重定向。 该请求将被无限期地重定向到注册页面,即请求未完成。 在rails服务器控制台上显示: Filter chain halted as :authenticate_user! rendered or redirected Completed 302 Found in 0ms (ActiveRecord: 0.0ms)

从ajax调用重定向主窗口

我有一个ajax调用控制器来检查身份validation,当没有身份validation时,它会将调用发送到signin控制器,该控制器检查它是否是xhr请求。 如果是,它将包含page.redirect_to的rjs呈现到signin路径,并且主窗口被重定向到signin页面。 这在谷歌浏览器中完美无缺,但在Firefox中失败。 rjs文件中唯一的代码是: page.redirect_to(“http://localhost:3000/signin”) 正如我所说,它在chrome中完美运行但Firefox(v3.6)拒绝重定向主窗口。 有没有人对如何在Firefox中使用它有任何想法?

如何强制Twitter Single Sign-On在端口443上使用https

我已经设置了一个使用Twitter进行单点登录的rails应用程序。 在我的Twitter配置中,我的回调如下所示: https://somesite.com/users/auth/twitter : https://somesite.com/users/auth/twitter 但是来自https://api.twitter.com/oauth/authenticate?oauth_token=someoauthtoken的重定向代码在html中具有以下代码: 如何强制Twitter Single Sign-On在端口443上使用https? 我尝试将我的Twitter帐户中的回调设置更改为https://somesite.com:443/users/auth/twitter但它仍然在重定向上使用端口80。 任何帮助将不胜感激。 更新 有没有人使用https与twitter回调的Ruby on Rails应用程序? 如果您使用Twitter进行单点登录,您是否不想使用https?

Ruby on Rails 301重定向

我添加了slugs到一些模型,但由于SEO我需要从旧链接做301重定向:旧: http://host.com/foo/1 新: http://host.com/foo/foo_slug 问题:在这种情况下如何实现301重定向? 是否可以从大写链接实现301重定向? 像这样: http://host.com/foo/FOO_SLUG -> http://host.com/foo/foo_slug

Rails:将API请求限制为JSON格式

我想限制所有API控制器的请求被重定向到JSON路径。 我想使用重定向,因为URL也应根据响应而改变。 一种选择是使用before_filter将请求重定向到相同的操作但强制JSON格式。 这个例子还没有用! # base_controller.rb class Api::V1::BaseController < InheritedResources::Base before_filter :force_response_format respond_to :json def force_response_format redirect_to, params[:format] = :json end end 另一种选择是限制路线设置中的格式。 # routes.rb MyApp::Application.routes.draw do namespace :api, defaults: { format: ‘json’ } do namespace :v1 do resources :posts end end end 我希望所有请求最终都是JSON请求: http://localhost:3000/api/v1/posts http://localhost:3000/api/v1/posts.html http://localhost:3000/api/v1/posts.xml http://localhost:3000/api/v1/posts.json … 你会推荐哪种策略?

采用自定义`redirect_to`方法的缺点和支持

为了在每次params包含redirect_uri值时将用户重定向到自定义网页,我正在评估以这种方式使用自定义redirect_to方法 (通过@kiddorails ): class ApplicationController < ActionController::Base def custom_redirect_to(url) redirect_to (params[:redirect_uri].present? ? params[:redirect_uri] : url) end end def create @post = Post.new(params) if @post.save custom_redirect_to @post else render 'new' end end 但是,我想知道可能的缺点并获得采用上述解决方案的支持。

每次`params`包含`redirect_uri`值时,如何将用户重定向到自定义网页?

我正在运行Ruby on Rails 4.1,我希望实现一个function,当用户通过提供redirect_uri参数执行操作时,将用户重定向到自定义网页。 换句话说,我希望每次在params出现redirect_uri值时“触发”重定向,并且重定向应该在任何情况下发生(例如,当使用HTML或JS格式执行GET,POST,PUT和DELETE HTTP请求时) )在完成流程流程之后(例如,当HTTP动词为POST时,重定向应在提交后发生)。 奖励 – 如果可能,我想在引荐来源url来自应用程序域之外的情况下validationURL(例如,链接正确性)。 我应该如何正确地做到这一点?