找不到带有' id'的FoodItem =

时间:2015-11-07 04:54:57

标签: ruby-on-rails routes

我正在使用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传递给此方法?

1 个答案:

答案 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。