Возможно, это не решит вашу проблему, но, возможно, вы все равно найдете это полезным:
Кажется, проблема с has_one :through
. Например, в class Post
,
has_one :owner, :through => :blog
отлично работает, но
has_one :owner, :through => :blog, :autosave => false
нет. Если вы создаете экземпляр Post
, например
post = Post.find 1
Вы получите это:
ArgumentError: Unknown key(s): autosave
from /var/lib/gems/1.9.1/gems/activesupport-3.0.1/lib/active_support/core_ext/hash/keys.rb:43:in `assert_valid_keys'
from /var/lib/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/associations.rb:1758:in `create_has_one_through_reflection'
from /var/lib/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/associations.rb:1102:in `has_one'
from /var/lib/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/autosave_association.rb:137:in `has_one'
[...]
Глядя на документацию , я не могу найти причину, почему она не должна работать. И на самом деле, кажется, что он отлично работает с has_many
, только has_one
икоты, если установлена опция :autosave
.
Если кто-то, находящийся здесь, в Stack Overflow, не обнаружит, что что-то не так с использованием :has_one
, вы также можете обратиться за помощью к списку рассылки Rails ; Я думаю, что Rails-core является правильным решением этой проблемы.