我想在同一个控制器中添加一个名为“campaign”的自定义操作,其行为方式与 REST 的“new”类似,但目的不同,所以我想将它们分开。因为,这个活动表格会有一些额外的字段。另一种选择是将额外参数传递给“新”操作,并为常规“新”操作和自定义“活动”呈现不同的模板。但是,我想弄清楚为什么它没有成功。
因此,我想出了以下路线(“消息”是具有“新”和“活动”操作的控制器):
get 'users/:user_id/messages/campaign', as: :campaign_user_message
或者
resources :users do
resources: messages do
member do
get 'campaign'
end
end
end
在控制台输出,我得到 ActiverRecord:RecordNotFound 因为它这样做:
Started GET "/users/1/messages/campaign" for 127.0.0.1 at 2012-12-22 00:14:38 -0800
Processing by MessagesController#show as HTML
Parameters: {"user_id"=>"1", "id"=>"campaign"}
我以这种方式调用动作:
link_to campaign_user_message_path(@user)