繁体   English   中英

将局部变量传递给局部变量

[英]passing local variable to partial

这已经被问过很多次了,但是在尝试了所有可以找到的解决方案之后,我离自己的解决方案越来越近了。

我有一个部分_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 %>

在标记的行中,我尝试将两个变量传递给给定的part- f: standingssub: sub 如果仅通过f: standings ,则页面加载正常,但是当添加sub: sub ,出现以下错误:

undefined local variable or method `sub'

引用了_standing_fields部分中的以下标记行:

<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>

我不认为出了什么问题,作为一种解决方案,我对语法,拼写,逗号等进行了三重检查,并重新启动了Redis服务器和Rails服务器。

您必须将变量放入本地键:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM