Rails 4.1
рубин 2,0Неопределенный метод `каждый» для # <Пользователь:
Credential.rb
class Credential < ActiveRecord::Base
belongs_to :category
has_many :user
validates :name, :login, :password, presence: true
attr_accessor :encryption_key
attr_encrypted :login, key: :encryption_key
attr_encrypted :password, key: :encryption_key
end
User.rb
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :credentials
def you
"You are <b>#{email}</b>"
end
end
CredentialsController.rb
class CredentialsController < ApplicationController
before_filter :authenticate_user!
def create
@credential = current_user.credentials.new
@credential.encryption_key = session[:master_key]
@credential.update(credential_params)
if @credential.save
redirect_to credential_path(@credential), notice: "Password entry created successfully."
else
render "new"
end
end
Линия:
@credential.update(credential_params)
бросает исключение
undefined method 'each' for #<User:0x4de4f58>
Учетные данные 'has_many: users' и User' has_many: credentials'. Если вы хотите отношения «многие ко многим», это не то, как вы это делаете. Для модели необходимо использовать 'own_to: user' или' belongs_to: credential' с помощью foreign_key. Кроме того, у вас есть опечатка. Это 'has_many: users' не' has_many user'. – David
Глупая ошибка) Добавить ответ Я отметю это! –
Это исправить вашу ошибку? – David