0

私はこのようにroutes.rbに書きました:

get 'app/:name&:target' => 'apps#show', :as => :app_info

「app/myapp&mytarget」にアクセスしてから、apps_controller#show に移動します。これは、haml です。

link_to app_item[:name], app_info_url(app_item[:name], app_item[:target])

しかし、それは返します:

No route matches [GET] "/app/myapp&mytarget"

ここで何を見逃したのですか?

4

2 に答える 2

2

ルートで受け入れたい URL パラメーターを指定する必要はありません。controller#action へのルートを作成するだけです。例)

get 'app/:name' => 'apps#show', :as => :app_info

app#show アクション内で、params[:target] 内から URL パラメーターにアクセスすると、そのような URL パラメーターが多数存在する可能性があり、それらはすべて、Rails が生成する params ハッシュ内にあります。ルートで明示的に言及する必要はありません。

したがって、パラメーターを URL ヘルパーに渡すだけです。

link_to app_item[:name], app_info_url(app_item[:name], target: app_item[:target])
于 2013-01-16T10:27:58.027 に答える
0

パスまたはURLでそのように渡します

app_info_url(app_item[:name], app_item[:target], :params1 => "value1", params2 => "value2"......)
于 2013-01-16T10:42:08.137 に答える