Вложенные формы - fields_for () и символы - PullRequest
1 голос
/ 08 апреля 2011

Я боролся с этим последние несколько часов:

У меня есть вложенная форма (показанная ниже), и она работает, но я не могу понять, как получить доступ к:student_id в _form_outcome_ratings.html.erb.Он отображает соответствующий student_id в скрытом поле, которое было создано, но я понятия не имею, как получить доступ к этому номеру, чтобы отобразить имя студента рядом с полем рейтинга.Когда я пытаюсь сослаться на: student_id или: student_id.to_s, он возвращает «student_id» вместо числа.Я думаю, что упускаю или неправильно понимаю что-то очень простое, но я не могу понять, что!

Спасибо, что нашли время, чтобы посмотреть на это, и дайте мне знать, если есть что-то, что мне нужно уточнить илиadd.

/ 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 Ответ

2 голосов
/ 08 апреля 2011

Не уверен, что я понял, что вы хотите, но ...

Вы можете получить доступ ко всем переменным модели в конструкторе форм, если выполните следующие действия:

f.object.your_variable

пример:

f.object.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...