인스턴트 메신저를 사용하여 모든 멘션을 추출하는 응용 프로그램을 작성합니다. 나는 멘션을 보낸 모든 사용자를 저장하려는 프로필 모델을 가지고 있습니다. 그 테이블에 나는 트위터 API를 통해 검색된 ID를 저장하고 싶은 twitter_id 필드와 같은 이름을 가진 description, screen_name 등의 다른 필드를 가지고있다.트위터 보석 및 레일 문제 저장
# a.tc is a Twitter object already authenticated
tws = a.tc.mentions({:count => 200})
# foreach mention
tws.each do |t|
# Check if we already have it saved
p = Profile.find_by_twitter_id t.user.id
if p.nil?
# Profile doesnt exist, try to save it
p = Profile.new(t.user.to_hash) # ERROR!
p.twitter_id = t.user.id
p.save
end
는 이미 ... 일이지만 모든 것을 trows 오류 많은 시도 루비 멍청한 놈 = P
당신은 하나Profile
에서 사용할 수있는 속성 만 ID를 삭제하거나 할당해야
가 왜'Profile.new (t.user.to_hash)를'사용합니까 실수로 속성을 할당 할 수 있기 때문에 더 나은 방법이 있나요? –
t.user는 Twitter gem의 User 객체이며 프로필 테이블을 만들어서 t.user (Twitter :: User)의 키 중 일부를 필드로 사용합니다 (예 : screen_name, description, location). 그러나 다른 일부 키는 그렇지 않습니다. 내 모델에 존재하기 때문에 모든 데이터에 관심이 없습니다. 오류 : "경고 : 보호 속성을 대량 할당 할 수 없습니다 : id"오류를 이해하지만 프로필에 사용자를 저장하거나 각 필드에 해시를 만들어야 만합니다. 이름? –