我正在为通讯录创建基本应用程序,并希望将联系人与用户相关联。将联系人与用户相关联
我已经为用户设置了身份验证,现在正在尝试将我的联系人表与用户关联起来。我有两个独立的控制器,一个用于用户,另一个用于联系人,然后我的计划是通过belongs_to:user和has_many:contacts将它们关联起来。
我完全被错误难倒我不断收到虽然
undefined method `new' for Contact:Module
据我所知,我在接触控制器正确定义新的,但由于某种原因,我不能得到这个工作。
我有以下的代码,此刻
路线:
Contact::Application.routes.draw do
get "sessions/new"
get "logout" => "sessions#destroy"
controller :user do
get "signup" => "user#new"
end
resources :users, :controller => 'user'
controller :sessions do
get "login" => "sessions#new"
post "login" => "sessions#create"
delete "logout" => "sessions#destroy"
end
controller :dashboard do
get "home" => "dashboard#home"
end
controller :contact do
get "newcontact" => "contact#new"
end
resources :contacts, :controller => 'contact'
root :to => 'sessions#new'
end
联系控制器
class ContactController < ApplicationController
def new
@contact = Contact.new
end
def create
@contact = Contact.new (params[:contact])
if @contact.save
redirect_to root_url
else
render "contact#new"
end
end
end
联系/新形式
<%= form_for @contact do |f| %>
<% if @contact.errors.any? %>
<div class="error_messages">
<h2>Form is invalid</h2>
<ul>
<% for message in @contact.errors.full_messages %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class = "name-field">
<%= f.text_field :name, :placeholder => "Name" %>
</div>
<div class = "company-field">
<%= f.text_field :company, :placeholder => "Company" %>
</div>
<div class = "email-field">
<%= f.text_field :email, :placeholder => "Email" %>
</div>
<div class = "phone-field">
<%= f.text_field :phone, :placeholder => "Phone" %>
</div>
<div class = "mobile-field">
<%= f.text_field :mobile, :placeholder => "Mobile" %>
</div>
<div class="actions"><%= f.submit "Add Contact" %></div>
</div>
<% end %>
任何帮助的人能提供至修复这个错误真的会非常感激,因为我完全卡住了!我认为这可能与联系一词的多元化有关,但似乎找不到解决问题的正确方法。
非常感谢您的帮助! Tom
类的ContactController
Mishaux
2012-04-04 00:30:18
您可以为错误的回溯? – Ekampp 2012-04-05 07:22:12
@Mishaux - 我试着改变ContactController到ContactsController,而是接收'期望的C:/Sites/contact/app/controllers/contact_controller.rb来定义ContactController'。 – 2012-04-06 09:10:38