Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Can';找不到带有';id'=_Ruby On Rails_Routes - Fatal编程技术网

Ruby on rails Can';找不到带有';id'=

Ruby on rails Can';找不到带有';id'=,ruby-on-rails,routes,Ruby On Rails,Routes,我正在使用RubyonRails开发web应用程序。我想让用户能够上传他们最喜欢的食物项目在一个页面上的图像。我设定了一条路线: get 'add_image', to: 'food_items#add_image', via: :get 当用户在当前食物项页面上并单击链接到添加图像路径的链接时,将调用食物项控制器中的添加图像方法。该方法定义为: def add_image @food_item = FoodItem.find(params[:id]) respond_to do

我正在使用RubyonRails开发web应用程序。我想让用户能够上传他们最喜欢的食物项目在一个页面上的图像。我设定了一条路线:

 get 'add_image', to: 'food_items#add_image', via: :get
当用户在当前食物项页面上并单击链接到添加图像路径的链接时,将调用食物项控制器中的添加图像方法。该方法定义为:

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
第一行代码不起作用,因为我的url无法将id传递给该方法。如何重置路由以包含id?或者如何将当前的食物项传递给此方法

将您的路线更改为:

get 'foot_items/:id/add_image' => 'food_items#add_image', :as => ' add_image'
并链接到as添加图像路径(food\u item.id) 这里的food_item.id是食品项目id