如何从视图中调用控制器函数,然后重新加载同一页面?

时间:2013-10-25 19:27:51

标签: ruby-on-rails routes

我希望在我的显示页面上有一个链接,它会调用控制器上的一个功能,然后重新加载显示页面。

我正在使用SNMP gem,该功能将切换特定交换机接口上的管理上/下设置。

我需要将当前的@node和接口索引号传递给我的Nodes控制器上的“toggleAdmin”函数。然后toggleAdmin将运行SNMP gem命令以检查指定接口的当前状态,并将其设置为相反的状态。完成运行后,它会再次呈现'show'。

我试过了:

<% link_to "ToggleAdmin", :controller=>:nodes, :action=>:toggleAdmin %>

但我明白了:

No route matches {:controller=>"nodes", :action=>"toggleAdmin"}

我会在路径文件中添加什么,以及如何从视图中添加其他参数以将它们传入toggleAdmin函数?

1 个答案:

答案 0 :(得分:0)

在路线中你可以拥有:

 get 'nodes/toggle_admin'

然后您的link_to应该正常工作

<% link_to "ToggleAdmin", nodes_toggle_admin_path(:some_param => :value) %>

是的,“toggleAdmin”不符合命名约定。应该是“toggle_admin”