rails,对URI和控制器的一般理解

时间:2012-04-09 19:36:25

标签: ruby-on-rails routes anchor

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

当我转到“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”,我会继续被重定向到消息#show function。为什么一般呢?

我有一个received_messages.html.erb,即使在我的路线中,我也有

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

我的控制器中也有#received_messages功能。

为什么它一直被重定向到消息#show

非常感谢=)

1 个答案:

答案 0 :(得分:2)

你问:

  

如果我手动输入“localhost:3000 / messages / received_messages”,i   继续被重定向到消息#show function。为什么会这样   一般?

一般来说,你有“消息”......和

的想法
  1. 查看邮件集合,您将转到“/ messages”
  2. 要查看特定邮件(ID为56),您将转到“/ messages / 56”
  3. 编辑,“/ messages / 56 / edit”
  4. 创建一个新的:“/ messages / new”
  5. 因此,当您转到/ 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文件。