Tag: 重定向

为什么在around_filter或after_filter中的redirect_to不起作用?

如何使redirect_to在这些filter中起作用? 我想改变 def start …. redirect_to index end def end … redirect_to index end 至 around_filter :around def around … yield redirect_to index end def start .. end def stop … end

在Rails 3中没有尾随斜杠的情况下重定向到规范路由

在Rails 3上,我正在尝试从没有尾部斜杠的URL重定向到具有斜杠的规范URL。 match “/test”, :to => redirect(“/test/”) 但是,上面的路由匹配/ test和/ test /导致重定向循环。 如何使其仅匹配没有斜杠的版本?

Ruby on Rails:如何根据search_field中的post params重定向页面?

我正在开发一个小股票市场应用程序,用户可以根据股票代码查找公司股票信息。 用户在搜索字段中发布了:symbol param后,应将其重定向到相应的“公司”页面(如华尔街日报,雅虎财经,Google财经等)。 我现在能够用符号手动输入路线,一切正常。 例如,localhost:9292 / company / GOOG。 我是一个总菜鸟,所以任何帮助都会非常感激。 谢谢! 我目前在我看来有这个: 这是我的路线: get “/company/:symbol” => “main#company” post “/company/:symbol” => “main#company_post” 编辑:我正在使用MarketBeat gem来提取数据,但我也有一个Company表,其中我有列符号和名称。 这是我的控制器: class MainController < ApplicationController def index render :index and return end def company @name = MarketBeat.company params["symbol"] @symbol = MarketBeat.symbol params["symbol"] @price = MarketBeat.last_trade_real_time params["symbol"] @change = MarketBeat.change_and_percent_change params["symbol"] @volume = […]

如何在更改路由转换时重定向(301)?

我正在寻找一种简单的方法来在我的应用程序中进行重定向。 情况: 我有这样的路线: http://myapp.com/authors/5-hemingway/books/1-moby-dick 路线以这种方式翻译(使用gem’i18n_routing’): http://myapp.com/acutores/5-hemingway/libros/1-moby-dick 现在,我将acutores的翻译改为了scriptores。 简单的步骤,但我想将包含旧“acutores”资源名称的所有路由重定向到带有“scriptores”的路由。 我的猜测是,我应该在routes.rb中玩: match “/acutores” => redirect(“/scriptores”) 但是如何在“acutores”出现的所有情况下有效地做到这一点? (尤其是嵌套路线)

如何在Rails中将“新”操作重定向到“创建”?

在Rails中,我可以使用routes文件中的resources自动为CRUD操作创建一组路由。 这会创建index , new , create , edit , show , update和销毁路径。 我理解这些路由如何工作的一般流程,并且通常在调用路由时,根据传递到相应操作的参数创建模型对象,并创建相应的视图或将客户端重定向到另一个指定的操作。 new视图和edit视图都可以使用相同的_form partial来更新其各自操作中的模型对象。 但是,我很难理解客户端之后如何重定向到另一个操作。 例如,在new操作中,客户端被重定向到create动作,并且传递new中更新的模型对象以作为参数create 。 我不明白这是怎么回事,因为没有指定重定向,我看不出模型对象是如何变成参数的。 def new @article = Article.new end def create @article = Article.create(article_params) redirect_to(article_path(@article.id)) end _form部分:

Rails 3和Devise:重定向到注册后的页面(可确认)

我有一个带Devise的Rails 3项目,启用了确认,因此用户必须在注册后通过电子邮件确认他们的帐户。 目前,该项目将用户返回到登录页面并抛出“您已成功注册…”通知。 我想要做的是将它们重定向到“谢谢”页面,并提供进一步说明(检查您的电子邮件,垃圾邮件文件夹,等等)。 我的第一站是Devise wiki,在那里我找到了这个页面 。 看起来很容易,我做了以下改动,并严格按照指示…… /app/controllers/registrations_controller.rb class RegistrationsController < Devise::RegistrationsController protected def after_sign_up_path_for(resource) "http://google.com" end end /config/routes.rb devise_for :users, :controllers => { :registrations => “registrations” } 我必须在方向上进行的一项修改是将“registrations”文件夹移出/ app / views / devise视图文件夹并移至top / app / views文件夹,因为返回的错误现在缺少视图。 无论如何,尽管控制器覆盖似乎工作(我不认为视图原本会破坏),这些方向不起作用…页面忽略after_sign_up并在注册后返回登录页面。 在互联网上搜索包括其他Stack Overflow线程,但我发现的任何内容都没有对我有用…或者回答混淆重定向注册用于登录IN,或者他们实际做的是在登录后改变重定向(正如Devise通常注册后自动登录,不启用确认)。 我试过的其他事情…… 将after_sign_up_path_for(资源)移动到应用程序控制器中。 不起作用。 奇怪的是,使用after_sign_in_path_for(资源)执行相同操作并以用户身份登录重定向。 将registrations_controller.rb从/ app / controllers /移动到/ app / controllers / […]

Ruby-on-Rails:如何摆脱“你被重定向”页面

我正在重写Devise的失败响应,以便我可以设置401状态代码。 但是,当用户登录失败时,会将其重定向到“正在重定向”链接的页面。 如果我删除它:status => 401从重定向它工作正常。 class CustomFailure ‘secure’) end def respond if http_auth? http_auth else store_location! flash[:alert] = i18n_message unless flash[:notice] redirect_to redirect_url, :status => 401 end end end 编辑 或者,我想显示flash消息并保留在同一页面上,但添加以下代码行: render :text => “unauthorized”, :status => 401 让ruby抱怨: undefined method `render’ for # 这里发生了什么事?

Rails重定向与https

我正在维护一个Ruby on Rails站点,我对如何使用https协议重定向到相对URL感到困惑。 我可以使用http成功创建重定向到相对URL,例如: redirect_to “/some_directory/” 但我无法辨别如何使用https协议创建重定向到URL。 我只能通过使用绝对URL来实现,例如: redirect_to “https://mysite.com/some_directory/” 我想保持我的代码干净,使用相对URL似乎是个好主意。 有谁知道如何在Rails中实现这一目标?

不使用htaccess,将’myapp.com’重定向到rails中的’www.myapp.com’?

使用Morph Labs的Appspace部署站点意味着没有自动方式将“myapp.com”重定向到“www.myapp.com”(并且无法访问.htacess)。 有这样的轨道方式吗? 我需要一个像subdomain-fu这样的插件吗? 更具体地说,我正在尝试做类似的事情: ‘myapp.com’=>’www.myapp.com’ ‘myapp.com/session/new’=>’www.myapp.com/session/new’ 基本上,我总是希望每个请求都附加“www”子域名(因为SSL证书的具体名称是“www.myapp.com”)。

Rails 3 – 使用OmniAuth设计 – 登录后重定向转到/ users / sign_in

我使用omiseuth设计用于登录Facebook用户。 我希望在登录之前登录到他们所在的页面后重定向它们。 我用过了 def after_sign_in_path_for(resource_or_scope) store_location = session[:return_to] clear_stored_location (store_location.nil?) ? “/” : store_location.to_s end 在我的应用程序控制器中,并使用此代码创建了sessions_helper def deny_access store_location redirect_to new_user_session_path end def anyone_signed_in? !current_user.nil? end private def store_location session[:return_to] = request.fullpath end def clear_stored_location session[:return_to] = nil end 并解决问题,重定向到“服务/”,我有Facebook和其他平台认证的逻辑,我已经使用了 skip_before_filter :store_location 在服务和其他控制器,我不会存储为位置。 Q1我现在遇到的问题是当我使用ajax并在模态窗口中呈现登录表单时,当用户成功登录时,它会被重定向到/ users / sign_in /。 我没有用户控制器,并试图创建一个sessions_controller.rb并添加skip_before …但它不起作用。 这是我的sign_in路线 new_user_session GET /users/sign_in(.:format) {:action=>”new”, […]