0

我是 ruby​​ on rails 的新手。

这是我的路线.rb

RpxNowExample::Application.routes.draw do

  root :to => "users#index"
  resources :users
end

通常我的功能运行良好,但我想进行调整。如果条件为真,我希望它使用同一个控制器调用另一个操作重定向到另一个视图“promptemail”,即

if(@provider == "Twitter")

     redirect_to :action => :promptemail

end

它应该把我带到那个promptemail观点。

4

2 回答 2

0

您可以将块传递给您的资源定义以在标准之外添加额外的操作:

resources :users do
  match :promptemail, :via => [:get], :on => :member
end

:via选项允许您限制 get、post、put 等,该:on参数将采用 :member 或 :collection。

:collection将对集合进行操作,与索引操作类似,:member将对单个记录进行操作。因此,如果您将路线指定为:on => :member,则需要在生成路线时提供对象或 id。

可以在此处找到有关向资源添加路由的更多信息:http: //guides.rubyonrails.org/routing.html#adding-more-restful-actions

于 2013-01-24T08:58:04.987 回答
0

使用同一个控制器调用另一个动作-

尝试:

路线.rb:

RpxNowExample::Application.routes.draw do

  root :to => "users#index"
  resources :users do
     collection do
        get 'promptemail'
      end

你的控制器:

if(@provider == "Twitter")

     redirect_to :promptemail

end

注意: - 无需调用actionredirect_to因为您在同一控制器中调用操作。

于 2013-01-24T09:22:12.703 回答