我正在为照片实施喜欢,并且ID没有被传递。我不知道为什么。有人可以解释一下原因吗?我觉得这会帮助我更好地理解铁轨。
点击后,我收到此错误:“找不到没有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
答案 0 :(得分: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
答案 1 :(得分:0)
您的提交正在提交标有photo_id
的photo_id(在您的隐藏字段中)。因此,您的控制器需要通过params[:photo_id]
而不是params[:id]
来检索它。