Ruby on rails 将局部变量传递给局部变量
这已经被问了很多次了,但是在尝试了所有我能找到的解决方案之后,我没有更接近于我自己的解决方案 我有一个部分,Ruby on rails 将局部变量传递给局部变量,ruby-on-rails,ruby-on-rails-3,partials,Ruby On Rails,Ruby On Rails 3,Partials,这已经被问了很多次了,但是在尝试了所有我能找到的解决方案之后,我没有更接近于我自己的解决方案 我有一个部分,\u表-以下是相关部分: <% @tournament.sub_tournaments.each do |sub| %> <%= f.fields_for :sub_tournaments, sub, :validate => false do |sub_form| %> ... <table> ...
\u表
-以下是相关部分:
<% @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 %>
它引用了\u standing\u字段中的以下标记行
部分:
<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>
“站立”,只读:true,:type=>“”%>
#问题出在这里
去除
我想不出哪里出了问题,我已经三次检查了语法、拼写、逗号等,并按照建议的解决方案重新启动了我的redis服务器和rails服务器 您必须将变量放入一个本地键中:
<%= render 'tournaments/form_partials/standing_fields', locals: {f: standings, sub: sub} %>
不是这样-一定是其他原因触发了这一点,因为如果我在表单中注释掉有问题的行,我仍然会得到错误。无论如何-为什么locals
key?我已经向一个分部提交了多个变量,但在其他上下文中没有它,它工作正常。?发现错误,这是一件完全不同的怪事-尽管你的答案对我提出的问题是正确的。如果你知道本地钥匙的必要性,请告诉我!
<%= render 'tournaments/form_partials/standing_fields', locals: {f: standings, sub: sub} %>