Ruby on rails Rails问题发布到用户\u控制器操作

Ruby on rails Rails问题发布到用户\u控制器操作,ruby-on-rails,Ruby On Rails,我在我的users\u控制器中有一个删除用户图片的操作 def use_fb_photo @user = User.find(params[:id]) if @user.picture? and @user.uid @user.remove_picture! if @user.save redirect_to :back end end end routes.rb post 'users/:id/use_fb_

我在我的users\u控制器中有一个删除用户图片的操作

  def use_fb_photo
    @user = User.find(params[:id])
    if @user.picture? and @user.uid
      @user.remove_picture!
      if @user.save
        redirect_to :back
      end
    end
  end
routes.rb

post 'users/:id/use_fb_photo', to: 'users#use_fb_photo', as: :use_fb_photo
我想我需要使用表单将用户id发送到此操作

   <%= form_for @user, url: use_fb_photo_path, html: {id: "use-fb-photo-form", class: nil} do |f| %>
    <% end %> 
我收到错误
没有路径匹配[PATCH]“/users/17/use\u fb\u photo”

如果我更改路径以修补。。。我得到了一个模板丢失错误,而不是post。 我觉得我把这件事弄得太复杂了,但我整天都在忙着编码

我只希望用户单击一个按钮(必须在另一个表单中),该按钮将删除用户的图片并重定向到他们的个人资料页。

我想您错过了

method: :delete

在通话中。

默认情况下,发送
补丁
,但您的路线等待
POST
。您可以在您的
表单中添加
方法:“post”
,或者将路径更改为
补丁

,我认为这不对。我不是在删除记录,我只是在对它进行更改。我正在将参数(用户id)发布到控制器操作。picture是用户的参数,还是用户有很多图片?我也被过度编码了,所以可能我只是问了一些蹩脚的问题。这是userOk的一个参数,它帮助避免了无路由匹配错误,但现在它要求一个模板。我想这是因为我的重定向在if语句中。在您的操作中,您的代码不健康。如果其他人在一起。
 $('.fb-photo').on('click', function () {
    $('#use-fb-photo-form').submit();
  });
method: :delete