我的路线定义如下
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的内部工作原理
答案 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