Nie kojarzę (i nie widzę w dokumentacji), żeby na “metodach relacji” dało się używać new.
Prawdopodobnie chodzi Ci o metody build_ i create_
(dla has_one i Twojego przykładu będą to @student.build_mark(attributes={}) i @student.create_mark(attributes={}).
Zawsze też możesz użyć @student.mark = Mark.new
Szczegóły: http://guides.rubyonrails.org/association_basics.html#has_one-association-reference
API AR nie przewiduje new na metodzie relacji dla has_one, masz build_xxx, create_xxx i xxx=, szczegóły w linku w poprzednim poście.
Na has_many jest jak piszesz, collection.new (alias collection.build).