2012-02-25 10 views
0

私はちょうどこれについて考えていく必要があります。私はPhotos showページを手に入れました。ユーザーは「Like」をクリックして、特定のphotoの新しいlikeレコードを作成できます。私の写真でRailsは適切な形式でIDを渡します

私は次の形式を持っているページshow.html:

:私は、私はそれが「IDなしで写真を見つけることができませんでした」というメッセージが表示されますフォームをクリックすると

<%= form_for :like, :url => likes_path do |f| %> 
    <%= hidden_field_tag(:photo_id, @photo.id) %> 
    <%= f.submit "Like" %> 
<% end %> 

Started POST "/likes" for 127.0.0.1 at Sat Feb 25 16:43:21 -0500 2012 
Processing by LikesController#create as HTML 
Parameters: {"commit"=>"Like", "authenticity_token"=>"cQnuAHb/f6Sgo3aB5xPKErx3joQTV+DHGs0w9vi13vM=", "utf8"=>"\342\234\223", "photo_id"=>"47"} 
Completed 404 Not Found in 68ms 

ActiveRecord::RecordNotFound (Couldn't find Photo without an ID): 
    app/controllers/likes_controller.rb:8:in `create' 

photo_idが正しく渡されているように見えるのはなぜですか。ここ は私likes_controllerを見ます:

def create 
    @photo = Photo.find(params[:id]) 
    @like = Like.new(:photo_id => :photo_id, :user_id => current_user.id) 
end 

誰もが私がここで間違ってやっているものを参照してください?ありがとう。

答えて

1

Photo.find(params[:photo_id])で動作するはずです。

エラーメッセージには、Photo.findnilというパラメータ(例:要求にはパラメータidはありません。

+0

ありがとう、それはトリックでした! –

関連する問題