rails形式的未定义方法contact_path

时间:2016-06-03 11:00:41

标签: ruby-on-rails

我的路线定义如下

get 'contacts/new', to: 'contacts#new'

在我的ContactsController中我定义如下

def new
  @contact = Contact.new
end

在视图中的contacts / new / _form.html.erb我的结构形式如下

<%= form_for @contact, html: {multipart:true} do |f|  %>

<%= f.label :username %>
<%= f.text_field :username %>

<% end %>

但是当我去 localhost:3000 / contacts / new

我收到以下错误。

未定义的方法contacts_path ,它出现在表格的第一行。

但是当我尝试在路线中定义如下时,它起作用了

get 'contacts/new', to: 'contacts#new', as: 'contact'

当我在路由文件中定义它时,任何想法为什么rails会抛出这样的错误。我只是想了解rails routes的内部工作原理

3 个答案:

答案 0 :(得分:2)

要避免此类错误,请删除您的路线并使用:

resources :contacts, only: [:new, :create]

答案 1 :(得分:1)

尝试更好地使用像@Graham提到的get 'contacts', to: 'contacts#index', as: :contacts #genetares: contacts_path get 'contacts/new', to: 'contacts#new', as: :new_contact #new_contact_path 这样的railsy方式。

Intent intent1= new Intent(getApplicationContext(), goToThisClass.class);
                    startActivity(intent1);

                    Intent intent2= new Intent(getApplicationContext(), goToThisClass2.class);
                    startActivity(intent2);

答案 2 :(得分:1)

为联系人创建一个帖子类型的路由(为此会抛出错误)

或删除此路线

 get 'contacts/new', to: 'contacts#new'

简单地添加

resources :contacts