2011-11-13 5 views
0

레일은 생성하기 위해 전달 된 여분의 키를 무시할 수있는 방법을 제공합니까? 가정 된 사용자는 first_name과 last_name의 두 가지 속성을가집니다. 내가 할 때생성을 위해 전달 된 해시에서 여분의 키를 무시합니다.

User.create({ :first_name => "first", :last_name => "last", :age => 10}) 

이 줄은 나에게 UknonwnAttributeError를 제공합니다. 글쎄, 그게 말이 되네, 원인 나이가 속성 중 하나가 아닙니다.

하지만 User의 속성 중 하나가 아닌 키 - 값 쌍을 무시하는 방법이 있습니까?

답변

0

어느 말했다 또는

hash.keep_if { |k,v| User.attribute_names.include?(k.to_s) } 

은 궁극적으로 당신은 무시할 수있는 것을 sameera207 당신의 사용자 모델의 create 메소드가 유효하지 않은 속성을 거부하지만 적절하지 않다고 생각합니다.

+0

제가보기에 레일이 이미 이것을 가지고 있다고 생각했습니다. – denniss

0

난 당신이 '나이'로 가상 속성을 선언하여이 작업을 수행 할 수있는 추측

예 :

class User < ActiveRecord::Base 
    attr_accessor :age 
end 
+0

나이가 존재하지 않는 이유는 내가 그것을 만들려고 노력할 때 무시해야한다고 생각합니다. – denniss

관련 문제