Я создаю базовое приложение для адресной книги и хотел бы связать контакты с пользователями.
Я настроил аутентификацию для пользователей и сейчас пытаюсь связать свою таблицу контактов с пользователями.У меня есть два отдельных контроллера, один для пользователей, а другой для контактов, и затем я планирую связать их с помощью own_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 %>
Любая помощь, которую могут предложить люди, чтобы исправить эту ошибку, была бы очень признательна, потому что я полностью застрял!Я думаю, что это может быть связано с плюрализмом слова «контакт», но, похоже, не могу найти правильный способ исправить это.
Большое спасибо заранее за вашу помощь!Том