2015-03-26 3 views
0

У меня есть две модели, школьников и студентовВложенные модели в рельсах

#in student.rb 
has_one :school, dependent: :destroy 
accepts_nested_attributes_for :school 

#in school.rb 
belongs_to :student 
validates_presence_of :name 

Теперь у меня есть скрипт, который загружает имена студентов из файла Excel. Но после загрузки имен я хотел бы создать атрибуты школы во время редактирования модели студента.

#in my students controller, 
def edit 
    @student = Student.find(params[:id]) 
    if [email protected] 
    @student.build_school 
    end 
end 

#and in my edit view, 
<%= form_for(@student) do |f| %> 
     . 
     . 
    <%= f.fields_for :school, :wrapper => false do |user| %> 
    . 
    . 
    <% end %> 
<% end %> 

Но проблема в том, что школьная модель не строится, поэтому не отображается. Благодаря

+0

'@ student.build_school' должен быть сделан в' new' метода и определить свой 'сильного parameters' – Sontya

+0

Я определил сильный Params , не показывал его там. Моя проблема заключается в том, что я создаю учеников из другого сценария. Студенты создаются без школ. – Tiamon

+0

, так что вы говорите, что в школьной таблице нет ссылочного идентификатора или справочной школьной записи для конкретного пользователя, когда пользователь создается скриптом – SRDP

ответ

0

Попробуйте код ниже

def new 
@student = Student.new 
@school = @student.school 
@student.build_school  
end 

def edit 
@student = Student.find(params[:id]) 
@school = @student.school unless @student.school 
end 

Надежда, что помогает

Смежные вопросы