ruby on rails - Undefined method `each' for #<User: -
rails 4.1 ruby 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 , :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable has_many :credentials def "you <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
the line:
@credential.update(credential_params)
throws exception
undefined method 'each' #<user:0x4de4f58>
you need edit associations. have credentials has_many :user
, users has_many :credentials
. 1 foreign key should belongs_to
not has_many
. if you're attempting create many-to-many relationship, either utilize has_many_and_belongs_to
or bring together table. further, should has_many :users
, not has_many :user
. should resolve error.
ruby-on-rails
No comments:
Post a Comment