尝试使用资源路由帮助程序函数时出现错误
<%= 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)
我不再收到错误,但我得到了
的不可靠的网址 http://localhost:3000/phone_numbers?id=1
我不明白这个错误,因为phone_number_display.id不为空
答案 0 :(得分:2)
你想要路线的单一版本:
phone_number_url(phone_number_display)
答案 1 :(得分:1)
不应该在{}中包含尾随参数,因为它们无论如何都会被转换为Hash。请参阅api for 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)
部分,检查我是否得到了我的期望。
答案 2 :(得分:1)
最好使用phone_numbers_
路径 (phone_number_display.id)
,因为这会为您提供相对路径“/phone_numbers?id=1
”而不是{{1}路径。
答案 3 :(得分:0)
如果你刚刚创建了这条路线,你可能需要重启你的杂种。
您也可能希望运行rake路由以仔细检查命名路由。