2013-10-15 2 views
0

이것은 여러 번 묻지 만 내가 찾을 수있는 모든 솔루션을 시도한 후에는 내 솔루션에 더 가깝지 않습니다.지역 변수를 부분으로 전달

내가 가지고 _form 부분 - 여기에 관련 부분이있다 :

표시된 줄에
<% @tournament.sub_tournaments.each do |sub| %> 
    <%= f.fields_for :sub_tournaments, sub, :validate => false do |sub_form| %> 
    ... 
     <table> 
     ... 
     <tbody> 
     <%= sub_form.fields_for :standings, :validate => false do |standings| %> 
      <%= render 'tournaments/form_partials/standing_fields', f: standings, sub: sub %> #here's the problem 
     <% end %> 
     </tbody> 
     </table> 
     ... 
    <% end %> 
<% end %> 

, 나는 주어진 부분에 두 개의 변수를 전달하려고 해요 - f: standingssub: sub. 난 단지 f: standings, 페이지가로드 잘 통과하지만 sub: sub를 추가 할 때, 나는 다음과 같은 오류가 발생하는 경우 :

<tr> 
    <td><%= f.hidden_field :_destroy %><%= f.text_field :standing, :class => "standing", readonly: true, :type => "" %></td> 
    <% if Game::TEAM_GAMES.include? sub.game.name %> #here's the problem 
    <td><%= f.grouped_collection_select(:team_division_id, Team.order(:name).includes(:team_divisions), :team_divisions, :name, :id, :game_name, include_blank: true)%></td> 
    <% else %> 
    <td><%= f.grouped_collection_select(:player_id, Player.order(:name).includes(:player), :player, :name, :id, :game_name, include_blank: true)%></td> 
    <% end %> 
    <td><span class="remove">Remove</span></td> 
</tr> 

I를 다음 _standing_fields 부분에 다음 표시된 라인을 참조하는

undefined local variable or method `sub' 

무슨 일이 일어나고 있는지 생각할 수 없다. 문법, 철자법, 쉼표 등을 세 번 검사하고 redis 서버와 레일 서버를 다시 시작하는 것이 하나의 해결책으로 제안되었다.

답변

1

당신은 키 지역 주민의 변수를 추가해야한다 그것은 아니다 그

<%= render 'tournaments/form_partials/standing_fields', locals: {f: standings, sub: sub} %> 
+0

- 다른 내가 _form''에 문제가있는 줄을 주석으로하는 경우 때문에, 내가 해요 즉,이 트리거 뭔가가 있어야합니다 여전히 오류가 발생합니다. 어쨌든 - 왜 '지역 주민'열쇠? 다른 컨텍스트에서는 하나 이상의 변수를 부분적으로 제출 했으므로 괜찮습니다. – dax

+0

이 오류를 발견 한 것은 완전히 다른 괴짜였습니다. 귀하의 대답은 내가 물어 본 질문에 맞지만. 만일 당신이 노동 조합 지부 열쇠의 필요성에 대해 알고 있으면 나에게 알려주세요! – dax

관련 문제