routes.rbを異なるコントローラを呼び出すことができます:)は、どのように私は私がちょうどむしろ簡単に思える問題、とのではなく、私のためではなくGoogleのために数時間を苦労しています
私は
を経由して、いくつかのルートを置きますscope :path => '/:mandate_key', :controller => :tasks do
get '/' => :index #mandate_path
match '/import' => "import#index"
match '/clearance' => "clearance#index"
end
これまでのところ、とても醜いです!私は別のコントローラ(インポートとクリアランス)を2番目のパラメータに依存して呼び出す方法を探しています。このような何か:
:task_key
が
params[:task_key]
として認識されるべきであり、それが
ImportController
を呼び出す必要があり
http://some.url/a_mandate_key/import
のようなリンクをクリックした場合に呼び出さコントローラだから
params[:task_key]
の値でなければなりません
scope :path => '/:mandate_key', :controller => :tasks do
get '/' => :index
scope :path => ':task_key', :controller => %{'task_key'}
get '/' => :index
end
end
。
解決策は簡単だと確信していますが、見つけにくいです!
私はparams [:task_key]を介してtask_keyを取得できません。 – klausinho
これをより明確に表現するには:afte login aベースURLを取得しますhttp:// localhost:3000権限を選んだとき、 http:// localhost:3000/a_mandate /私のログインと任務に応じて、いくつかのタスクを手に入れます。そのうちの1つを選択すると、http:// localhost:3000/a_mandate/a_taskが提供されます 上記のコードでは、params [:mandate_key]を使って委任者の名前を取得できます。今はparams [:task_key]を介してタスクに同じものが必要で、最後のURLを呼び出すとタスクのコントローラを呼び出す必要があります – klausinho
あなたのソリューションをチェックしましたが、探しているものが見つかりませんでした。 http:// localhost:3000/first_mandate - コントローラのタスクを呼び出す必要があります(上のコードの1行目のスコープで動作します) http:// localhost/first_mandate/import - コントローラを呼び出す必要があります'インポート' ます。http:// localhost /をfirst_mandate /クリアランス - コントローラを呼び出す必要があります 'すきま' ます。http:// localhost /をfirst_mandate /インポート/ first_action - コントローラ 'インポート' HTTPで 'first_action' メソッドを呼び出す必要があります: // localhost/first_mandate/clearance/another_action - コントローラ 'clearance'のメソッド 'another_action'を呼び出す必要があります – klausinho