没有路线匹配[GET]" / zombie"

时间:2015-10-17 04:58:55

标签: ruby-on-rails

早些时候它工作得很好。我不知道发生了什么,但我现在得到了这个错误。

Rails.root:/ Users / abhimanyuaryan / RubymineProjects / TwitterBy

enter image description here

2 个答案:

答案 0 :(得分:3)

错误消息中的路径是“/ zombie”,但是您的所有路径 使用“/ zombies”

你可能想修改各种id路径/zombies/:id(.format) 是/zombie/id(.format)。这与铁路的做法相符。

HTH

答案 1 :(得分:1)

正如答案中所述,您的问题是,当路由为/zombie/zombies时,您正试图访问/zombie/:id

我想补充一点,如果你是初学者,路线系统看起来有点令人困惑......

enter image description here

理解它的方法是 Rails 捕获您发送的网址。 Rails并不神奇,它构建在HTTP protocol之上,因此您只能将网址发送到您的应用,例如/zombies或{{ 1}}

Rails使用ActiveDispatch middleware来访问应用的网址,然后路由到您的代码所在的/zombie/:id。然后,Rails从您的代码中获取呈现的HTML并将其返回给浏览器,允许用户与其数据等进行交互。

需要注意的重要一点是, Rails只能与您发送的内容一起使用

Routes documents是了解其运作方式的一个很好的步骤;最终,您必须了解自己负责将正确的网址发送到导轨,这可以通过path helpers非常简单地实现。

<强>物件

最后,我还想展示其他内容 - object orientation

enter image description here

Rails建立在Ruby之上,这使得它们都成为object orientated。这是一种受电子游戏欢迎的编程模式。

面向对象编程的计数器是flow based programming,它将应用程序的 flow 置于设计的中心。典型的&#34;原生&#34;应用程序是基于流的,而游戏是面向对象的。

两者之间的技术差异在于面向对象的程序存储了一系列对象&#34; (变量)在内存中,允许用户进行交互&#34;和他们一起。

基于流的设计可以在内存中保留尽可能多的数据,但只允许用户通过某些流交互访问它。最好的例子就是 setup / installation 应用程序。

无论如何,因为 Ruby 是面向对象的,所以Rails的设计也是如此。一旦你理解了这一点,一切都变得很多更简单。

您不想将Rails视为控制器/变量/数据,而是想用对象 - 来讨论对象我与之交互?< /强>

这就是为什么大多数Rails以某种方式构建 - 使对象的操作更顺畅:

controller/action

看看它们如何组合在一起?

如果你专注于对象而不是流程,它会变得更加简单。