Saturday, 15 June 2013

ruby on rails - Undefined method `each' for #<User: -



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