2016-08-22 6 views
0

스포츠 게임을 저장할 앱을 만들고 있습니다.이 모든 사용자는 별도의 리그에 배치됩니다. 나는 이것을 위해 many to many를 설정했지만 사용자가 응용 프로그램을 볼 때 current_league의 모든 정보 만 볼 수 있습니다.루프에서 값으로 속성 업데이트

이제 사용자가있는 모든 리그로 루프를 만들려고합니다. 사용자가 리그를 클릭하여 활성 리그를 변경할 수 있어야합니다.

경로

resources :users do 
    member do 
     post :change_current_league 

    end 
    end 

UserController

def change_current_league 
    @user = current_user 
    @user.update(:current_league_id, params[:league_id]) 
    redirect_to :back, :notice => "Successfully changed your active league" 
end 

보기

<% current_user.leagues.each do |l| %> 


<%= link_to change_current_league_user_path(current_user, l), method: :post, class: 'btn btn-default btn-sm' do %> 



        <%= l.id %><%= l.league_name %><br> 
<% end %> 




<% end %> 

나는이 작업을 얻으려면 어떻게해야합니까?

죄송의 경우 멍청한 놈 질문의 비트 : P

편집 :이가 작동하지만 어떻게 내가 사용자의 컨트롤러로 정확한 league_id을받을 수 있나요

def change_current_league 
    @user = current_user 
    @user.update_attribute(:current_league_id, 1) 
    redirect_to :back, :notice => "Successfully changed your active league" 
end 


    resources :users do 
    member do 
     patch :change_current_league 

    end 
    end 

?

EDIT2 :

def change_current_league 
    @league = League.find(params[:league_id]) 

    @user = current_user 

    @user.update_attribute(:current_league_id, @league) 

    redirect_to :back, :notice => "Successfully changed your active league" 
end 
+0

당신은 업데이트하는 사용과 대체 r atrribute 그래서 put/patch 요청은 메소드 – Navin

+0

을 게시하지 않습니다. <% = link_to change_current_league_user_path (current_user, current_league_id : l.id), 메소드 : : 패치, 클래스 : 'btn btn과 같은 링크로 매개 변수로 league_id를 전달하십시오. -default btn-sm 'do %> – Navin

+0

오케이. 그리고 지금 나는 usercontroller (check edit)에서 이것을 시도했다. 하지만 지금은 필드를 0으로 업데이트합니다 .. –

답변

1

, 그 풋/패치 요청이처럼 링크가 매개 변수로 league_id request.pass 게시하지 않도록 당신은 사용자 속성을 업데이트하는이 시도

<%= link_to change_current_league_user_path(current_user, current_league_id: l.id), method: :patch, class: 'btn btn-default btn-sm' do %> 

하고 usercontroller에 (편집 확인)를 넣고 라인

@user.update_attribute(current_league_id: params[:current_league_id])