На моем сайте Rails пользователи публикуют Listings
товаров, которые они хотят продать. Другие пользователи могут просмотреть эти списки и щелкнуть ссылку, чтобы связаться с продавцом, которая должна создать MessageThread
:
# MessageThread properties...
listing_id
poster_id # (listing_id's owner.. this is a shortcut for to avoid joins on the database)
sender_id
body # (text of message)
MessageThreads
никогда не создаются вне контекста Listing
, поэтому я вложил их находчивые маршруты. Тем не менее, им не нужен контекст Listing
для просмотра / редактирования после их создания ... он необходим только для действий new
и create
. Я настроил это так:
resources :message_threads, :only => [:show, :destroy]
resources :listings do
resources :message_threads, :only => [:new, :create]
end
Я не могу понять синтаксис form_for
в представлении действий new
для MessageThreadsController
... Я делаю form_for @message_thread
, но это не работает. Это правильный способ настроить этот объект? Следует ли мне избегать использования ресурсоемких маршрутов или, возможно, передавать идентификатор листинга в качестве параметра в URL-адресе вместо того, чтобы вкладывать маршруты? Или всегда ссылаться на message_thread под списком?