Rails Resource Restful Routes Вспомогательные функции и ноль ошибок - PullRequest
1 голос
/ 28 марта 2009

Я получаю сообщение об ошибке при попытке использовать вспомогательные функции маршрута ресурса

    <%= link_to_remote "Delete", {
        :method => :delete, 
        :url=> phone_numbers_url(phone_number_display.id), 
        :update => "section_phone"
        }%>

и в моих маршрутах у меня есть

       map.resources :phone_numbers

Я получаю следующую ошибку

 You have a nil object when you didn't expect it!
 The error occurred while evaluating nil.to_sym

Когда я использую

:url=> phone_numbers_url(:id => phone_number_display.id)

Я больше не получаю сообщение об ошибке, но получаю неверный URL-адрес

 http://localhost:3000/phone_numbers?id=1

Я не понимаю эту ошибку, так как phone_number_display.id не равен нулю

Ответы [ 4 ]

2 голосов
/ 28 марта 2009

Вы хотите единственную версию маршрута:

phone_number_url(phone_number_display)
1 голос
/ 08 мая 2009

Также может быть предпочтительнее использовать phone_numbers_ путь (phone_number_display.id), поскольку это даст вам относительный путь "/phone_numbers?id=1" вместо полного http://localhost.../.. пути.

1 голос
/ 28 марта 2009

Не должно быть необходимости заключать конечные аргументы в {}, так как они все равно будут преобразованы в хэш. См. API для link_to_remote . Я не знаю, является ли это причиной проблемы, но это первое, что я попробую.

    <%= link_to_remote "Delete",
            :method => :delete, 
            :url=> phone_numbers_url(phone_number_display.id), 
            :update => "section_phone"
            %>

После этого, если он все еще не работает, я посмотрю на часть phone_numbers_url(phone_number_display.id), чтобы убедиться, что я получаю то, что ожидаю.

0 голосов
/ 28 марта 2009

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

также вы можете запускать рейковые маршруты для двойной проверки именованного маршрута.

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