сопоставление один на один с разработанной моделью - PullRequest
0 голосов
/ 25 октября 2010

Я пытаюсь смоделировать непосредственную связь с моей моделью устройства и по какой-то причине не могу получить доступ к пути редактирования для зависимой модели. Вот что я имею в виду:

У меня есть CRUD-контроллер для модели User и Credential. Пользователь - модель устройства.

class Credential < ActiveRecord::Base
  belongs_to :user
end

class User < ActiveRecord::Base
  has_one :credential

  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable, :lockable and :timeoutable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me
end

У меня есть домашняя страница под действием Home в контроллере с именем Welcome. Мой файл маршрутов настроен так:

get "welcome/home"
devise_for :users
resources :users
resources :credentials

На домашнем экране при создании нового пользователя я пытаюсь обновить его учетные данные, используя

<% if user_signed_in? %>
    <% current_user.build_credential unless current_user.credential %>
    <% if current_user.sign_in_count < 5 %>
        <%= link_to "update profile", edit_credential_path(current_user.credential) %>
    <% end %>
<% end %>

В строке link_to появляется ошибка:

No route matches {:action=>"edit", :controller=>"credentials", :id=>#<Credential id: nil, created_at: nil, updated_at: nil, first_name: nil, last_name: nil, user_id: 3>}

Пожалуйста, помогите.

Спасибо.

1 Ответ

0 голосов
/ 27 сентября 2011

Проверьте свои маршруты с: грабли маршруты

Также сомнительно, если вы должны определить, вошел ли пользователь в представление. Трудно сказать об этом, не видя контроллера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...