6

私はRailsが初めてなので、しばらくお待ちください。

食堂モデルに「いいね」を実装したかったので、食堂リソース内にカスタムルートを作成しました

resources :canteens do
  resources :meals
  resources :comments
  match "/like", :to => "canteens#like", :as => "like"
end

したがって、食堂コントローラー内にこのアクションを作成し、カウンターをインクリメントするだけです

def like    
  canteen = Canteen.find(params[:canteen_id])
  Canteen.increment_counter("likes_count", canteen.id)
  redirect_to canteen
end

したがって、URL localhost:3000/canteens/1/like を手動で入力しても問題なく動作しますが、明らかにボタンを作成したいので、

<h2>Likes count</h2>
<p><%= @canteen.likes_count %> likes</p>
<p><%= link_to "Like this canteen", canteen_like_path %></p>

そして、それは機能しません。レーキ ルートを確認したところ、そこにありました (canteen_like)。私は何を間違っていますか?

4

1 に答える 1

10

Canteenオブジェクトをパスに渡す必要があります。これを行わないと、Rails はどの食堂を意味するのかを認識できません。

<%= link_to "Like this canteen", canteen_like_path(@canteen) %>
于 2012-11-14T03:48:05.270 に答える