我正在尝试向控制器添加一个称为回滚的操作。正如我所见,我唯一应该做的就是编写新动作:
def rollback
puts "ROLLBACK!"
respond_to do |format|
format.html # index.html.erb
format.json { render json: @components }
end
修改 routes.rb 文件:
resources :components do
collection do
post :rollback, :as => 'rollback'
end
end
并从某种角度调用动作:
<%= link_to 'Rollback', rollback_components_path %>
但我收到以下错误:
Couldn't find Component with id=rollback
app/controllers/components_controller.rb:18:in `show'
那是因为控制器没有执行回滚操作,而是认为我们正在尝试“显示”到 id 为“回滚”的组件。
对我来说似乎很奇怪的是,调用“新”动作 rails 使用 new_component_path (不带 s,单数),但如果我写 rollback_component_path 它会给我一个错误,我看不到视图。