0

写真のいいねを実装していますが、IDが渡されていません。どうしてか分かりません。誰かが理由を説明してもらえますか? Railsをよりよく理解するのに役立つと思います。

「ID のない写真が見つかりませんでした」のようにクリックすると、このエラーが表示されます。

写真ショーのページには、次のようなものがあります。

<%= form_for(@photolike, :url => {:controller => :photolikes, :action => 'create'}) do |f| %>
<%= f.hidden_field :photo_id, :value => @photo.id %> 
<%= f.submit "like", class: "btn postbtn right" %>
<% end %>

これは写真のコントローラーです

def show
if user_signed_in?
 @comment = current_user.sent_photocoments.new(params[:photo_comment])
 end
 @photo = Photo.find(params[:id])
 @photolike = Photolike.new
end

そして、photolikesコントローラーには、これがあります:

def create
 @photo = Photo.find(params[:id])
 @photolike = Photolike.new(:photo_id => @photo.id, :user_id => current_user.id)
 @photolike.addlike
 @photolike.save
 redirect_to @photo
end
4

2 に答える 2

1
def create
 @photo = Photo.find(params[:photolike][:photo_id])
 @photolike = Photolike.new(:photo_id => @photo.id, :user_id => current_user.id)
 @photolike.addlike
 @photolike.save
 redirect_to @photo
end
于 2013-06-08T04:06:52.550 に答える
0

photo_idあなたの送信は、 (非表示フィールドに)というラベルの付いた photo_id を送信しています。params[:photo_id]したがって、コントローラーはではなくを介して取得する必要がありますparams[:id]

于 2013-06-08T01:28:10.167 に答える