2017-05-15 5 views
-1

사용자가 초대를 수락 할 수 있도록 허용 태그가 초대 모델 자체에 있습니다 (테이블을 업데이트해야 함). 사용자가 버튼을레일, 초대 시스템의 레코드 업데이트

보기

<% @invites.where(user_id: current_user.id).find_each do |invite| %> 
... 
<%= button_to "Accept", accept_invite_invites_path(invite), method: :put %> 
end 

경로 내가 전무에 대한 '정의되지 않은 메서드`초대 "얻을

def accept_invite 

    @invite = Invite.find(params[:id]) 
    @invite.accept 
end 

def decline_invite 
    @invite = Invite.find(params[:id]) 
    @invite.decline 
end 

    def set_invites 
     @invite = @story.invites.find(params[:id]) 
    end 

def new 
    @invite = @story.invites.new 
end 

resources :invites do 
    collection do 
     get 'accept_invite' 
    end 
    end 

컨트롤러를 수락 클릭하면 지금까지 아무 것도 나타나지 않습니다 : NilClass "유지 : set_invites의 일부로 업데이트하고, 업데이트를 제거하면 코드가 실행될 수 있지만 ch는 실행되지 않습니다. 데이터베이스에 대한 분노가 일어난다.

모델

def accept 
    accept = true 
    save 

    end 

    def decline 
    accept = false 
    save 

    end 

콘솔

Processing by InvitesController#update as 
    Parameters: {"authenticity_token"=>"BDle9fqXHT9ZFctMbO4RvxfPuTQXe2Nq+b6/T29B3xjpYdtMozVUFLiRlaQFtuYzMrBceTQn8OtfGjJTe4wa/Q==", "id"=>"accept_invite"} 
    User Load (1.7ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 2 ORDER BY `users`.`id` ASC LIMIT 1 
No template found for InvitesController#update, rendering head :no_content 
Completed 204 No Content in 85ms (ActiveRecord: 1.7ms) 

데이터베이스는 사용자 테이블에서 선택이 아닌 초대 테이블 그래서 문제가 무엇

를 업데이트되기 때문에 이상한? 경로가 잘못 되었습니까? 내 set_invites 메소드?

답변

1

그래서 무엇이 문제입니까? 경로가 잘못 되었습니까? 내 set_invites 메소드?

, 당신의 경로는에 결함이 있습니다. 내가 볼 수 있듯이 당신은 수집에 경로를 선언,하지만 당신은 회원에 필요합니다. 또한 put으로 변경해야합니다. 아직

resources :invites do 
    member do 
    put 'accept_invite' 
    end 
end 
+0

아무것도 변화는 콘솔 같은 출력 발생이에 대한 발견 "아니 템플릿에 오히려 그것은 이제 초대 테이블에서 선택 않습니다 초대 테이블 –

+0

를 업데이트하는 것보다 사용자 테이블에서 선택하지만 다음 실행 InvitesController # accept_invite "오류 –

+0

템플릿 문제가 해결되었지만 여전히 테이블에 대한 업데이트가 없습니다 –