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 回答