2015-01-16 3 views
1

몇 시간 전에이 작업을 수행 했으므로 두 번째 시도에서이 작업을 수행 할 수 없습니다. 많은 사용자와 많은 EventGoals가 있습니다. 사용자는 많은 EventGoals를 가지며 EventGoals에는 EventGoalClaims라는 조인 테이블을 통해 많은 사용자가 있습니다. @event_goal가 제대로 전달지고 있지만, 나는이`레일에 테이블 조인; 다 대다; 인스턴스에서 조인 메서드를 호출하려고 시도했습니다.

undefined method `event_goal_claims' for #<EventGoal:0x007fd11b0ce178>` 

여기 (첫 번째 줄에 오류가 타격) 뷰의 수 :

<%= form_for([@event_goal, @event_goal.event_goal_claims.build]) do |f| %> 
    <%= f.hidden_field :user_id, :value => current_user.id %> 
    <%= f.hidden_field :user_last_name, :value => current_user.last_name %> 

컨트롤러

def create 
     @event_goal = EventGoal.find(params[:event_goal_id]) 
     @event_goal_claim = @event_goal.event_goal_claims.build(eventgoalclaim_params) 
      @event_goal_claim.event_goal_id = @event_goal.id 
      @event_goal_claim.user_id = current_user.id 
      @event_goal_claim.user_last_name = current_user.last_name 

... 

private 
    def eventgoalclaim_params 
    params.require(:event_goal_claim).permit(:event_goal_id, :user_id, :user_last_name, :approved) 
    end 

편집

class EventGoal < ActiveRecord::Base 
    belongs_to :event 
    has_many :users, through: :event_goal_claims 
end 
+2

event_goal.rb를 붙여 넣을 수 있습니까? – tyamagu2

답변

2

답변 어쩌면 세 가지 모델 중 하나의 연관성에 놓여있을 것입니다. 그들은 다음과 같이해야합니다 : 주목할 가치 또한

user.rb 
Class User < ActiveRecord::Base 
    has_many :event_goal_claims 
    has_many :event_goals, through: :event_goal_claims 

event_goal.rb 
Class EventGoal < ActiveRecord::Base 
    has_many :event_goal_claims 
    has_many :users, through: :event_goal_claims 

event_goal_claim.rb 
Class EventGoalClaim < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :event_goal 

:이 모든 당신의 DB를 user_id and event_goal_id로 표시하여 schema.rb에서 event_goal_claims table에 외부 키를 가지고 가정입니다. 그것들과 다른 경우, 모델의 연관에 명시 적으로 외래 키의 이름을 명시해야합니다.

관련 문제