【发布时间】:2012-01-30 13:15:37
【问题描述】:
我正在尝试创建一个非常简单的站点,从 URL(或链接)发送和接收参数,应用程序应该支持任意数量的参数,即http://localhost:3000/action=receive&controller=pages&email=mail%40site.com&name=Vinny,然后能够接收/打印它们。
我想我已经找到了路线的问题。目前看起来是这样的:
match 'pages/*params' => 'pages#receive'
我创建这样发送参数的链接:
<%= 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'
它有效,但我仅限于指定的参数。
任何有关如何解决此问题的提示都会很棒。
【问题讨论】:
-
即使您正在访问“资产”控制器,硬编码到“页面”控制器(使用参数)的路由也可以工作?如果您特别引用资产怎么办:匹配'assets/*params' ...
-
@BryanH 嗨,不,我没有指定或创建一个名为 Assets 的控制器,我只有一个控制器,Pages。不知道 Rails 为什么要添加 Assets?到我的 URL 帖子。但是,我试图从 URL 中删除
assets?,但我遇到了另一个路由问题。我对 Rails 很生疏,这可能不是向我的控制器发送任意参数的正确方法? -
@BryanH 好主意,但没有帮助。 :(
标签: ruby-on-rails ruby routes