Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.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 如何更新上一条记录而不是创建新记录_Ruby On Rails_Ruby_Ruby On Rails 4_Paperclip - Fatal编程技术网

Ruby on rails 如何更新上一条记录而不是创建新记录

Ruby on rails 如何更新上一条记录而不是创建新记录,ruby-on-rails,ruby,ruby-on-rails-4,paperclip,Ruby On Rails,Ruby,Ruby On Rails 4,Paperclip,我用回形针上传图像。 我想要的是,当文件存在时,用文件名更新最后一条记录,而不是创建新记录。 在回形针中,文件名为path 我正在尝试这个: def create if(params[:path]) @photo = current_user.photos.update_attribute(:path, params[:path]).last else @photo = current_user.photos.new(photo_params) end end 我的文

我用回形针上传图像。 我想要的是,当文件存在时,用文件名更新最后一条记录,而不是创建新记录。 在回形针中,文件名为
path

我正在尝试这个:

 def create
  if(params[:path])
   @photo = current_user.photos.update_attribute(:path, params[:path]).last
  else
   @photo = current_user.photos.new(photo_params)
  end
end
我的文件输入名是
photo[path]

我只想将
path
值添加到已存在的行中:

您可以在这里使用一些Rails魔法,特别是
find\u或\u create\u by
及其变体。例如,如果您这样做:

@photo = current_user.photos.find_or_create_by_path(params[:path])
它将首先查找具有该路径的条目,如果找不到,则创建一个新条目。注意,如果参数[:path]块,您也可以使用Ruby代替
if

有关
查找\u或\u创建\u的详细信息,请参见

,它可能会对您有所帮助