Ошибка маршрутизации Rails 3.2.1 - PullRequest
0 голосов
/ 30 января 2012

Я пытаюсь создать очень простой сайт, который отправляет и получает параметры из 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"

И URL выглядит так:

http://localhost:3000/assets?action=receive&controller=pages&email=mail%40site.com&name=Vinny

Примечание актив? .

Если вместо этого мой маршрут выглядит следующим образом:

match 'pages/:name/:email' => 'pages#receive'

Это работает, но тогда я ограничен указанными параметрами.

Любые советы о том, как решить эту проблему, были бы великолепны.

1 Ответ

2 голосов
/ 30 января 2012

Хорошо, я думаю, что вижу, что происходит. Указание параметров в маршрутах необязательно для получения значений в действии контроллера. Итак, замените map, который вы указали ранее в routes.rb на

resources :pages

Если вы добавите к своей ссылке

:controller => "pages"

Должен перейти на правильный контроллер + действие. (это может не понадобиться в вашем случае)

В этом действии вы можете получить все параметры из хеша

email = params[:email]
account = params[:name]

Etc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...