모델에서 현재 객체를 가져올 수 있는지 궁금합니다. 즉 내가모델에서 현재 객체를 얻으려면 self를 사용하십시오.
이belongs_to :user
belongs_to :lesson
내 수업 모델은 필자 시도하고 나뿐만 아니라 (중요하지 않음) 내 사용자 모델과 연관을 가지고
has_many :favorite_relationships
has_many :users, :through => :favorite_relationships
있는
FavoriteRelationship 모델이 내 FavoriteRelationship 내에서 방법을 수행
def lesson_owner
self.lesson.user
end
은 FavoriteRelationship에서 해당 강의에 속한 사용자를 검색하지만 작동하지 않는 것 같습니다. 내가 작동하지 않는 FavoriteRelationship 모델의 경우에도 교훈을 검색
self.lesson.inspect
을 할 경우에도, 아무 것도 반환하지 않습니다. 누군가 이렇게 할 수있는 방법을 밝힐 수 있었습니까?
나는 본질적으로 FavoriteRelationship 모델과 관련된 수업을 원합니다. 내 FavoriteRelationship 테이블에, 나는,
:id, :user_id, :lesson_id.
을 속성을 가지고 있고 : lesson_id은 값 메신저 그래서 난 이후
당신의 도움과 시간 을 주셔서 감사합니다 사용자를 얻을 수 있습니다 획득을 시도해야한다@ 업데이트.
기본적으로 사용자 즐겨 찾기 누군가 elses 수업을 '배지'부여하려고 사용하고 있습니다. 내가 그 방법을 만든 이유가 ..
def create
@lesson = Lesson.find(params[:favorite_relationship][:lesson_id])
puts 'before favorite'
current_user.favorite!(@lesson)
puts 'after favorite'
@favorite_relationship = @lesson.user
respond_to do |format|
format.html { redirect_to @lesson }
format.js
end
end
내 배지 부여는에 부여 메신저 사람 반환하는 방법에 걸리는
grant_on 'favorite_relationships#create', :badge => 'got-favorited',
:to => :lesson_owner
...에서 온다, 그건.
내가 제공까지, 전무 또는 아무것도
puts self.lesson.inspect
아무것도 할 때. 나는 내 호의적 인 일을 알고, 그것은 DB에 관계를 만듭니다. 내가 생각할 수있는 유일한 일은 관계가 생기기 전에 배지를 부여하려고한다는 것입니다. hmm ... print 문을 넣었고 create_favorite_relationship이 호출되고 반환 된 후에 lesson_owner에 들어가는 것처럼 보입니다. 어쩌면 DB에서 아직 만들지 않았을까요? 너무 빨라요? 선호도는 비동기 적으로 발생합니다.
좀 더 연관성을 설정해야합니까?
간단한 접근 방식 인 @user = FavoriteRelationship.find (1) .user'는 무엇이 잘못 되었습니까? – jdoe
그냥 항상 테이블의 첫 번째 행을 반환하지 않습니다? – Sasha
그저 그 예입니다. 그것을 일반화하자 :'@ fav_rel.user' 또는'FavoriteRelationship'의 메소드에서 접근하려고한다면'user'를 호출하십시오. 또는 나는 당신의 의도를 오해 했습니까? – jdoe