0

Ruby on Railsは初めてです。

ここに私のroutes.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

注: -同じコントローラー内でアクションを呼び出すため、action呼び出す必要はありません。redirect_to

于 2013-01-24T09:22:12.703 に答える