Ruby on Rails - button_to使用路由从控制器调用函数

时间:2013-08-28 03:59:15

标签: ruby-on-rails ruby redmine button-to

大家好我现在有一个关于button_to

的问题

我想设置一个在控制器中调用方法的按钮,这就是我设置按钮的方式:

(位于issue / _edit.html.erb中)

<%= button_to "Cancel Return", :action => "cancel_return", :controller => "issues" %>

我希望这会在issues_controller.rb

中调用此函数
  def cancel_return
    @issue.cancel_return(params)
  end

我也在routes.rb

中添加了它
map.issue_cancel_return 'issues/cancel_return', :controller => 'issues',
                       :action => 'cancel_return'

但它无法正常工作,我已经尝试将cancel_return声明为helper_method,但它也无法正常工作。还有其他解决方案吗?或者我做错了?我使用ruby版本1.9.3p125和rails版本2.3.15,我使用旧版本,因为我试图修改redmine,任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:2)

你应该把它们放在像这样的花括号中

<%= button_to "Cancel Return", { :controller => "issues", :action => "cancel_return"} %>

发生的事情是map未定义调用方法,如GET / POST / DELETE 所以你可以做的就是在你的map文件

中使用此而不是routes.rb
get "issues/cancel_return" => "issues#cancel_return"

这可以解决你的问题。