如何从视图中调用控制器中的方法?

时间:2015-10-20 06:44:56

标签: ruby-on-rails-4

我有2个名为Event和Ticket的模型。 一个事件有很多票,一张票属于一个事件。 在事件show视图中,我想要一个名为“Generate Tickets”的链接或按钮,点击它时应调用控制器中的generate_tickets方法,该方法应该生成票证并将票证数组链接到事件。

此外,我希望如果在生成方法后它停留在同一页面上并通知已生成票证,而不是被重定向。

我研究了这个,看到我在我创建的事件控制器中需要一个辅助方法,在show视图中我有这个方法..

<%= link_to "Generate Tickets", :controller => :events, :method => :generate_tickets %>

但这似乎没有调用方法。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您应该修改link_to,如下所示

<%= link_to "Generate Tickets", :controller => :events, :action => :generate_tickets %>

您应该使用:action而不是:method来调用 控制器方法 :method用于指定 HTTP动词 (即POST, GET, PUT, PATCH)。

更多信息Here

此外,我希望通过定义route并将其作为link_to的路径

来实现此目的
#routes.rb
  get "generate_tickets", to: 'events#generate_tickets', as:'generate_tickets'

然后link_to将成为

<%= link_to "Generate Tickets", generate_tickets_path %>