【问题标题】:Rails - calling a method in controller using link_toRails - 使用 link_to 在控制器中调用方法
【发布时间】:2021-12-30 08:09:46
【问题描述】:

我试图从我的 index.html 文件中调用控制器中的一个方法,同时保持在同一路径上...有可能...有人可以帮助我

index.html

<%= link_to "Click", controller: "products", action: "click" %>

controller.rb

def click
    puts "click called!!!"
end

路线

get 'click'

错误:路由定义中缺少 :controller 键

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    根据 Rails Routes 的文档,您必须指定控制器和路由它的操作,在您的情况下,Products 控制器在 click 操作中。

    因此,在您的 routes.rb 文件中,您正确的 get 语法应该包括目的地,如下所示:

    get '/products/:id', to: 'products#click'

    同样在您的link_to 中,您应该包含产品的 ID,以便路由将 id 传递给控制器​​,并且您应该在控制器中包含逻辑以根据需要操作该 ID。 See this.

    PS:不要将您的操作命名为click,将其命名为对产品执行的实际操作,例如show。另请检查Resources routing 是什么。

    【讨论】:

      猜你喜欢
      • 2013-10-22
      • 2015-01-22
      • 1970-01-01
      • 2013-01-11
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      相关资源
      最近更新 更多