Rails 3 URL Helpers не работает правильно?

70
8

Взаимодействие Sigh-Rails 3 все еще меня пугает. Здесь линия route.rb -


match "/ghosts/:pid" => 'ghosts#update', :constraints => { :method => 'PUT' }

Здесь код в представлении:


<%= form_tag (admin_ghosts_path(@pid), :method => :put) do |f| %>

и вот что получилось


<form accept-charset="UTF-8" action="/admin/ghosts.jbdlljhhxz" method="post">

но что нужно сделать, это


<form accept-charset="UTF-8" action="/admin/ghosts/jbdlljhhxz" method="post">

Предложения? Кроме того, есть ли способ иметь стандартный маршрут:


resources :ghost, :only => [:index, :show, :update] do
get :index
get :show
put :update
end

Использовать ": pid" вместо ": id", не выполняя матч, как у меня выше?

спросил(а) 2011-04-11T02:24:00+04:00 9 лет, 5 месяцев назад
1
Решение
57

Думаю, вам нужно admin_ghost_path(@pid), а не admin_ghosts_path(@pid). Поскольку вы вызываете помощник URL, у которого нет регулярных аргументов, передаваемый вами параметр обрабатывается как значение аргумента протокола.

Чтобы узнать, какие правильные имена помощников для ваших маршрутов, запустите rake routes из командной строки.

ответил(а) 2011-04-11T05:15:00+04:00 9 лет, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема