0

在我的 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永远不会在 a 的上下文之外创建Listing,因此我嵌套了它们资源丰富的路线。但是,它们不需要在创建后查看/编辑上下文。只有and操作Listing才需要。我是这样设置的:newcreate

resources :message_threads, :only => [:show, :destroy]

resources :listings do
   resources :message_threads, :only => [:new, :create]
end

我似乎无法弄清楚...的操作视图中的form_for语法,但那不起作用。这是设置此对象的正确方法吗?我应该避免使用资源丰富的路由,还是将列表 ID 作为 URL 中的参数传递,而不是嵌套路由?还是总是引用列表下方的 message_thread?newMessageThreadsControllerform_for @message_thread

4

1 回答 1

1

这应该有效:

form_for @message_thread, :url => listing_message_threads_path(@listing)

您始终可以在命令行中运行它

rake routes | grep message_thread

新链接将是

new_listing_message_threads_path(@listing)
于 2011-11-16T03:50:46.233 回答