<% form_for @contact ... %>
没有提出任何方法错误。问题是它正在寻找'contacts_path',我所有[并且想要保留]是'contact_path'
将其复制会很尴尬,我将不得不将所有指向联系页面的链接更改为错误。
如何让form_for找不到* s_path!
谢谢=)
错误日志:
NoMethodError in Pages#contact
Showing /home/user/hipstershaadi/app/views/contact_mailer/_contact_form.html.erb where line #1 raised:
undefined method `contacts_path' for #<#<Class:0x007f0f6002ac08>:0x007f0f6002f4b0>
Extracted source (around line #1):
1 <% form_for @contact do |f| %>
2
3 <% end %>
答案 0 :(得分:1)
contacts_path
是惯例,如果你要与常规不同,那么像往常一样,你将不得不做更多的工作。解决这个问题的一种方法是自己指定路径:
form_for @contacts, url: contact_path do |f|
但通常contact_path
将保留用于已保存到数据库的内容,如更新表单中所示。
form_for
为真, PUT contact_path(@contact)
将自动使用@contact.persisted?
,否则将使用POST contacts_path
。也许您的问题是您认为@contact
已保存但实际上并非如此?或者你是因为其他原因而偏离惯例?