0

私はこれを持っています

ルート

put :sort, :path => 'activities/sort', :controller => 'activities'

JS

url: '/activities/sort',

これに変換したい(コントローラー名や:as属性を使用せずに)

url: <%= :action => 'sort' %>, 

またはこのようなものの同じhref:

<%= link_to "Order by name",
         :sort,
         :method => :put %>
4

2 に答える 2

2

この URL をルートに書き込む必要があります。お気に入り:

config/routes.rb

match 'activities/sort_by_attr' => 'activities#sort', :as => :sort_by_attr

それから書く

url: <%= sort_by_attr_path %>, 
于 2012-08-16T19:57:31.153 に答える
1

このようなルートを定義すると、7つのRESTfulルートが無料で提供されますresources :activitiesroutes.rbただし、RESTfulルーティングがデフォルトで作成する7つのルートに制限されません。必要に応じて、コレクションまたはコレクションの個々のメンバーに適用されるルートを追加できます。

resources :activities do
  collection do
    get 'sort_by_attr'
  end
end

または

resources :activities do
  get 'sort_by_attr', :on => :collection
end

次のように:asオプションを使用して、任意のルートの名前を指定できます。

resources :activities do
  get 'sort_by_attr', :on => :collection, :as => :sort
end

sort_activities_pathそれはあなたとを与えるでしょうsort_activities_url外部からのRailsルーティングの詳細をご覧ください。

編集:

link_toにパラメーターを渡すだけ:actionで、現在のコントローラーでそのルートを見つけて、そのアクションをレンダリングしようとします。推奨されていませんが、次のようなURLに一致する一般的なルートを定義してみることができます。

match ':controller/:action'
于 2012-08-16T20:11:21.363 に答える