0

我有一个消息模型和控制器。在其中,我有索引、显示等标准功能。

当我转到“localhost:3000/messages”时,会显示我的 index.html.erb,这反过来会呈现我的部分 _messages.html.erb。

在那里,我有一个锚href

<a href= "received_messages">Received Messages</a>

但是,我遇到了 2 个问题。

received_messages 没有附加 URL,我认为它通常会这样做,除非我在开​​头添加 /。我如何让它附加?

还有..如果我手动输入“localhost:3000/messages/received_messages”,我会不断被重定向到messages#show函数。为什么一般是这样?

我有一个 received_messages.html.erb 甚至在我的路线中,我有

match '/received_messages', to: 'messages#received_messages'

我的控制器中也有函数#received_messages。

为什么它不断被重定向到消息#show

非常感谢=)

4

1 回答 1

2

您询问:

如果我手动输入“localhost:3000/messages/received_messages”,我会不断被重定向到 messages#show 函数。为什么一般是这样?

一般来说,你有“消息”的想法......并且

  1. 查看消息集合,您将转到“/messages”
  2. 要查看特定消息(ID 为 56),您将转到“/messages/56”
  3. 要编辑,“/messages/56/edit”
  4. 创建一个新的:“/messages/new”

因此,当您转到 /messages/received_messages 时,系统正在尝试显示 ID 为“received_messages”的消息

如果您想对消息集合进行操作,您可以设置您的路线,例如:

resources :messages do
  collection do
    get :received
  end
end

这将匹配“/messages/received”,并运行 MessagesController#received 操作,并呈现 app/views/messages/received.html.erb 文件。

于 2012-04-09T19:48:49.323 回答