我正在使用ruby on rails进行Web应用程序开发。我想让用户能够在页面中上传他们喜欢的食物项目的图像。我设定了一条路线:
get 'add_image', to: 'food_items#add_image', via: :get
当用户在当前食品页面上并单击链接到add_image_path的链接时,将调用food_items控制器中的添加图像方法。该方法定义为:
def add_image
@food_item = FoodItem.find(params[:id])
respond_to do |format|
if @food_item.save
params[:food_images]['avatar'].each do |a|
@food_image = @food_item.food_images.create!(:avatar=>a)
end
format.html { redirect_to @food_item, notice: 'Images uploaded successfully' }
else
format.html { redirect_to add_image_path}
end
end
end
第一行代码无法正常工作,因为我的网址无法将ID传递给该方法。如何重置路由以包含ID?或者我如何将当前的food_item传递给此方法?
答案 0 :(得分:1)
将您的路线更改为:
get 'foot_items/:id/add_image' => 'food_items#add_image', :as => ' add_image'
并链接到 add_image_path(food_item.id) 这里food_item.id是食品id。