Nested model i dostęp tylko do jednego rekordu

Witam,
Piszę forum w formie nauki Railsów 3. Mam tabele Topics (id, title, timestamp) oraz Posts (id, topic_id, content, timestamp). Modele następujące:

[code]class Topic < ActiveRecord::Base
has_many :posts, :dependent => :destroy
accepts_nested_attributes_for :posts
end

class Post < ActiveRecord::Base
belongs_to :topic
end[/code]
Zakładanie wątku polega klasycznie na wpisaniu tematu (Topic - title) i zawartosci posta (Post - content), powiązane w nested. Lecz podczas edycji wątka dostaję edycje rownież wszystkich postów napisanych w tym wątku. Starałem się dobrać do pierwszego i jednego posta, lecz brak efektów. Poszukiwana w google nie dostarczyły odpowiedzi. Co muszę zrobić, by dostać się do tego rekordu z poziomu modelu?

Nie sprawdzałem ale wg. dokumentacji:

  accepts_nested_attributes_for :posts, :limit => 1

Najprostsze, ale może w Twoim przypadku wystarczy. Sortuj posty po id i wtedy wystarczy

@topic.posts.first

Obie możliwości były próbowane. Zawsze iteruje po wszystkich rekordach. Może log z serwera wskaże przyczynę dla 2 rekordów Post.

Parameters: {"id"=>"1"} e[1me[35mTopic Load (0.0ms)e[0m SELECT "topics".* FROM "topics" WHERE ("topics"."id" = 1) LIMIT 1 e[1me[36mPost Load (0.0ms)e[0m e[1mSELECT "posts".* FROM "posts" WHERE ("posts".topic_id = 1) LIMIT 1e[0m e[1me[35mPost Load (0.0ms)e[0m SELECT "posts".* FROM "posts" WHERE ("posts".topic_id = 1)

Nie widzę tutaj innego sposobu jak tylko ręczne odfiltrowanie otrzymanego hasha. W innym wypadku przy update’owaniu dowolnego posta mógłbym spreparować request podając dane innego posta. Wtedy Twój system autoryzacji mnie pewnie przepuści, a na poziomie modelu ciężko już sprawdzić czy dany post należy do zalogowanego użytkownika.

Prawdopodobnie można do tego podejść jakoś inaczej, ale ja bym po prostu olał accepts_nested_attributes_for.

A może:

has_one :main_post accepts_nested_attribute_for :main_post