嵌套表单 - fields_for()和符号

时间:2011-04-08 19:06:07

标签: ruby-on-rails ruby nested-forms

过去几个小时我一直在努力解决这个问题:

我有一个嵌套的表单(如下所示)并且它正在工作,但是对于我的生活,我无法想象如何访问_form_outcome_ratings.html.erb中的:student_id。它在创建的隐藏字段中显示相应的student_id,但我不知道如何访问该号码以显示评级字段旁边的学生姓名。当我尝试引用:student_id或:student_id.to_s时,它返回“student_id”而不是数字。我想我错过了或者误解了一些非常基本的东西,但我无法弄清楚是什么!

感谢您抽出时间来查看此内容,并告诉我是否需要澄清或添加内容。

/app/views/learning_outcomes/_form_rate.html.erb

<% form_for(@learning_outcome) do |f| %>  
  <% f.fields_for :outcome_ratings do |g| %>  
    <%= render :partial => 'form_outcome_ratings', :locals => {:f => g} %>  
  <% end %>  
  <%= f.submit %>  
<% end %>  

/app/views/learning_outcomes/_form_outcome_ratings.html.erb

<%= f.hidden_field :student_id %>  
<%= f.label :rating %><%= f.text_field :rating %>  

/app/controllers/learning_outcomes_controller.rb

def rate
  @learning_outcome = LearningOutcome.find(params[:id], :include => {:section => {:students => {:outcome_ratings => [:learning_outcome, :student]}}})
  @learning_outcome.section.students.each do |student|
    @learning_outcome.outcome_ratings.build(:student_id => student.id) if student.outcome_ratings.where(:learning_outcome_id => @learning_outcome.id).blank?
  end    
end

1 个答案:

答案 0 :(得分:2)

不确定我理解你想要什么,但是......

如果您执行以下操作,则可以在表单构建器中访问模型的所有变量:

f.object.your_variable

示例:

f.object.id