link_to не работает с дополнительными параметрами - PullRequest
2 голосов
/ 20 февраля 2011

Я пытаюсь использовать link_to для создания ссылки, которая ведет на новую страницу / create, например: "new / 2011/5".Однако, когда я использую приведенный ниже код, он создает ссылку, которая выглядит как «new.2011? = 5».

<%= link_to 'New', new_money_path(params[:year], params[:month]) %>

Я предполагаю, что это как-то связано с тем, что по умолчанию новое действие rorcreate не принимает никаких дополнительных параметров.Это можно обойти?

На странице моих маршрутов есть строка:

match "money/new/:year/:month" => "money#new"

Заранее благодарим за любую помощь.

Ответы [ 2 ]

5 голосов
/ 20 февраля 2011

Вам нужно указать свой маршрут, чтобы этот помощник ссылался на него.

match 'money/new/:year/:month' => 'money#new', :as => 'new_money'

И тогда ваш link_to должен работать.Краткая заметка: в тексте вашей ссылки написано «Изменить», но вы создаете новый ресурс.Это не может быть хорошим решением для пользовательского интерфейса.Кроме того, вы, вероятно, хотите ограничить свой маршрут GET запросами, такими как get 'path/:to/:whatever' вместо match.

Кроме того, у вас, кажется, уже есть вызов на resources где-нибудь в ваших маршрутах для этого.Поскольку в этом случае вам, вероятно, не нужны два маршрута к одному действию с разными параметрами, вам следует пропустить метод new, чтобы ваши маршруты выглядели так:

resources :monies, :except => [:new]
get 'money/new/:year/:month' => 'money#new', :as => 'new_money'
0 голосов
/ 20 февраля 2011

Вы должны использовать кнопку с POST вместо ссылки / GET для создания нового элемента.

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