如何通过link_to helper从rails中的视图传递参数到控制器操作

8 ruby-on-rails ruby-on-rails-3.1

<%= link_to "Connect", {controller:"home", action:"connectTo"}, id: "btny" %>
Run Code Online (Sandbox Code Playgroud)

这是我的link_to帮手.

我想在此link_to标记中附加一个参数,以便我可以在操作中获取它connectTo.我无法找到正确的语法或方法,并且无法理解我在stackoverflow上找到的一些答案.我怎样才能做到这一点?

def connectTo 
  #here i want to get the parameter i pass from link_to from view...
end
Run Code Online (Sandbox Code Playgroud)

Bil*_*han 23

  1. 不要在Rails中的变量名和方法名中使用camel case.这不是一个惯例,会在以后咬你.

  2. 尽可能使用命名路径,而不是手动分配控制器和操作.

对于你的问题,假设您的命名路径home_connect_to_path,然后

link_to "Connect", home_connect_to_path(foo_param: 'bar_value')
Run Code Online (Sandbox Code Playgroud)

链接看起来像

http://localhost:3000/home/connect_to?foo_parms=bar_value
Run Code Online (Sandbox Code Playgroud)

然后在控制器中获取它

def connect_to
  foo = params[:foo_param] # 'bar_value'
Run Code Online (Sandbox Code Playgroud)

  • 一旦在`routes.rb`中定义了这样的路径,就可以在命令行中运行`rake routes`来查看所有路径的名称. (2认同)
  • 你可以在这里阅读基本知识:http://guides.rubyonrails.org/routing.html (2认同)