在... form_for中的NoMethodError正在寻找路径的复数

时间:2014-02-02 06:59:53

标签: ruby-on-rails ruby-on-rails-4 form-for

<% 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 %>

1 个答案:

答案 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已保存但实际上并非如此?或者你是因为其他原因而偏离惯例?

相关问题