路由错误Rails 3.2.1

时间:2012-01-30 13:15:37

标签: ruby-on-rails ruby routes

我正在尝试创建一个非常简单的站点,发送和接收来自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'

它有效,但后来我只限于指定的参数。

如何解决这个问题的任何提示都会很棒。

1 个答案:

答案 0 :(得分:2)

好的,我想我知道发生了什么。无需在路径中指定参数即可将值输入控制器的操作。因此,请将map中之前指定的routes.rb替换为

resources :pages

如果您添加到链接

:controller => "pages"

它应该转到正确的控制器+动作。 (在您的情况下可能没有必要)

在该操作中,您可以从哈希

中获取所有参数
email = params[:email]
account = params[:name]