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