我正在尝试创建一个非常简单的站点,发送和接收来自URL(或链接)的参数,应用程序应该支持任意数量的参数,即http://localhost:3000/action=receive&controller=pages&email=mail%40site.com&name=Vinny,然后能够接收/打印它们。
我想我已将问题定位到我的路线上。它目前看起来像这样:
match 'pages/*params' => 'pages#receive'
我创建了这样发送params的链接:
<%= link_to "Send Params", :action => "receive", :name => "Vinny", :email => "mail@site.com" %>
当我点击链接时,我收到以下错误。
No route matches [GET] "/assets"
网址如下所示:
http://localhost:3000/assets?action=receive&controller=pages&email=mail%40site.com&name=Vinny
注意资产?。
如果我的路线看起来像这样:
match 'pages/:name/:email' => 'pages#receive'
它有效,但后来我只限于指定的参数。
如何解决这个问题的任何提示都会很棒。
答案 0 :(得分:2)
好的,我想我知道发生了什么。无需在路径中指定参数即可将值输入控制器的操作。因此,请将map
中之前指定的routes.rb
替换为
resources :pages
如果您添加到链接
:controller => "pages"
它应该转到正确的控制器+动作。 (在您的情况下可能没有必要)
在该操作中,您可以从哈希
中获取所有参数email = params[:email]
account = params[:name]
等