我正在尝试传递两个变量以供嵌套模型表单使用,但是我收到了一个错误。这可能是一个简单的语法错误,有人经验可以立即看到,但我没有看到它。
我有一个显示用户的模板,如果你点击一个,它应该在表单中使用user_id和community _id。社区和用户都在控制器中正确声明。
链接到表单:
<%= link_to "award badge", award_badge_badges_path, :user_id => user.id, :community_id => @community.id %>
表单使用两种模式 - 徽章和徽章获胜者。 badge_winners需要user_id和community_id,它们嵌套在徽章中。我得到的错误是"undefined local variable or method 'user_id' for #<#<Class:0x77544c0>:0x7714230>"
所以我认为表格中的第2行和第3行出了问题。这是表格:
<%= form_for(@badge) do |f| %>
<%= f.hidden_field :user_id ,:value => user_id %>
<%= f.hidden_field :community_id ,:value => community_id %>
<%= f.label :Description %>
<%= f.text_area :description %>
<%= f.fields_for :badge_winners do |builder| %>
<%= render "badge_winner", :f => builder, :locals => {:user_id => user_id, :community_id => community_id} %>
<% end %>
<%= f.submit "Give Badge" %>
<% end %>
控制器中的show模板:
def award_badge
@badge = Badge.new
badge_winners = @badge.badge_winners.build
end
徽章获胜者部分
<%= f.hidden_field :user_id ,:value => user_id %>
<%= f.hidden_field :community_id ,:value => community_id %>