0

私の Rails 4 コードでは、items はリソースです (rails generate model item column1:string ... を使用してアイテムのデータベース移行を作成しました)。メソッド htmlupdates を含むコントローラー、items_controller を作成しました。私は ajax 呼び出しを行います

url: '/items/htmlupdates'

config/routes.rb に次の行を追加すると、私のコードは正常に動作します

get 'items/htmlupdates' => 'items#htmlupdates'

しかし、config/routes.rb に次のコードを入れると、コードが機能しません。

resources :items, only: [:new, :htmlupdates, :create]

ターミナル ログに次のエラー メッセージが表示されます。

Started GET "/items/htmlupdates?_12345678..." for 127.0.0.1 at 2013-09-15 10:47:54 -0700
Processing by ItemsController#show as JS
  Parameters: {"_"=>12345678...", "id"=>"grades"}

items テーブルに htmlupdate 行を表示しようとしていると思われるのはなぜですか? ajax呼び出しでurlの正しい形式は何ですか? ありがとう。

4

1 に答える 1

2

Rails リソースは、HTTP 動詞 GET、POST、PUT、DELETE、および PATCH にマップされる 7 つの RESTful アクション、 、 、 、および にindex基づいshowneweditます。createupdatedestroy

resourceこのコマンドを使用して、これらのアクション以外のカスタム ルートを作成することはできません。カスタム ルートの場合は、次を使用します。

get 'items/htmlupdates', :to => 'items#htmlupdates'

詳細については、Rails Guidesのルーティングに関するドキュメントをご覧ください。

于 2013-09-15T18:21:34.200 に答える