Один-к-одному: неопределенный метод сборки

есть проблема с отношениями один к одному

У меня есть несколько матчей, и я хочу получить один счет за матч.

мой Match.rb

has_one :score, :dependent => :destroy

мой счет

belongs_to :match

мой scores_controller.rb

def new
@match = Match.find(params[:match_id])
@score = @match.score.new
end

def create
@match = Match.find(params[:match_id])
@score = @match.score.create(params[:score])
end

мои маршруты

resources :matches do
resources :scores
end

мои результаты / new.html.haml

= form_for([@match, @match.score.build]) do |f|
    = f.label :score1
    = f.text_field :score1
    %br
    = f.label :score2
    =f.text_field :score2
    %br
    = f.submit

моя ошибка, которую я получаю

undefined method `new' for nil:NilClass

я до сих пор не работал с отношениями один на один, так как я довольно новичок в RoR, есть предложения?

РЕДАКТИРОВАТЬ

отредактировал мой код, чтобы он соответствовал create_score и build_score, похоже, работает. но сейчас у меня какое-то странное поведение.

в моем Score.rb

attr_accessible :score1, :score2

но когда я пытаюсь вызвать в моих матчах / show.html.haml

= @match.score.score1

я получаю неизвестный вызов метода или вообще ничего не вижу ... но если я просто вызову

= @match.score

я получаю объект оценки (например, #) #

РЕДАКТИРОВАТЬ 2

Исправил проблему. Я звонил

оценки / new.haml.html

= form_for([@match, @match.create_score])

должно быть

= form_for([@match, @match.build_score])

все работает как задумано.

необходимо войти в консоль rails и получить эти объекты, чтобы увидеть все: Score1: Score2 был ноль

Ответы на вопрос(3)

Ваш ответ на вопрос