1

コントローラーを持っている場合、新しく追加されたメソッドを使用してURL経由でコントローラーにアクセスするにはどうすればよいですか?

私が混乱している理由は、私がルートを持っているからです、

map.connect 'assignments/:external_id.:format', :controller => "assignments", :action => "show", :external_id => /\d{6}/

assignmentsコントローラ内の他のメソッドにアクセスできないようです。

mysite.com/assignments/other_method

show上記のルートエントリで指定されているように、other_methodはコントローラに渡すIDであると想定します。

編集:

これを一番上に追加しました:

map.connect 'assignments/send/', :controller => "assignments", :action => "send"

そして今、このエラーが発生しています:

ArgumentError in AssignmentsController#show 

のルートassignments/sendは、割り当てコントローラーのいずれかの最初の宣言です。

4

2 に答える 2

1

ルーティングテーブルには、この順序で配置する必要があります

map.connect 'assignments/:external_id.:format', :controller => "assignments", :action => "show", :external_id => /\d{6}/

map.connect 'assignments/send/', :controller => "assignments", :action => "send"

で終わる

  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'

あなたの最も一般的なケースとして。

于 2010-11-25T18:20:05.983 に答える
0

その2番目のケースに適切なルートパターンを指定するだけで、マッピングが上から下に評価されることを忘れないでください(最初の一致が実行されます)。

于 2010-11-25T15:16:05.667 に答える