Ruby on rails 将_链接到对象上的触发方法

Ruby on rails 将_链接到对象上的触发方法,ruby-on-rails,Ruby On Rails,我有一个链接,指向html.erb文件中的代码行: <%= link_to "no thanks" %> 我应该在我的链接到代码行中输入什么,以获得它所指的“正在处理”状态从“待处理”更改为“已拒绝”?我尝试了操作=>和方法=>,但没有成功。您需要控制器操作来执行此操作,例如: # ?.html.erb <%= link_to "no thanks", reject_treating_path(@treating), method: :post %> # config

我有一个
链接,指向
html.erb
文件中的
代码行:

<%= link_to "no thanks" %>

我应该在我的
链接到
代码行中输入什么,以获得它所指的“正在处理”状态从“待处理”更改为“已拒绝”?我尝试了
操作=>
方法=>
,但没有成功。

您需要控制器操作来执行此操作,例如:

# ?.html.erb
<%= link_to "no thanks", reject_treating_path(@treating), method: :post %>

# config/routes.rb
resources :treatings do
  member do
    post :reject
  end
end

# app/controllers/treatings.rb
class TreatingsController < ApplicationController
  # POST /treatings/:id/reject
  def reject
    current_user.treatings.find(params[:id]).reject!
    redirect_to treatings_path, notice: "Treating was rejected"
  end
end
#?.html.erb
#config/routes.rb
资源:治疗吗
成员do
帖子:拒绝
结束
结束
#app/controllers/treatings.rb
类处理控制器<应用程序控制器
#后/处理/:id/拒绝
def拒绝
当前用户.treatings.find(参数[:id])。拒绝!
重定向到治疗路径,注意:“治疗被拒绝”
结束
结束

我为治疗资源添加了一个成员操作,并假设治疗属于用户。

谢谢,但我现在得到一个路由错误:没有路由匹配{:操作=>“拒绝”,:控制器=>“治疗”}。此外,治疗作为别名属于用户(接收治疗和发送治疗)。希望这有助于解决问题:我的html.erb中的'@treating'实例变量需要改为'treating'。谢谢
# ?.html.erb
<%= link_to "no thanks", reject_treating_path(@treating), method: :post %>

# config/routes.rb
resources :treatings do
  member do
    post :reject
  end
end

# app/controllers/treatings.rb
class TreatingsController < ApplicationController
  # POST /treatings/:id/reject
  def reject
    current_user.treatings.find(params[:id]).reject!
    redirect_to treatings_path, notice: "Treating was rejected"
  end
end