Rails.root:/ Users / abhimanyuaryan / RubymineProjects / TwitterBy
答案 0 :(得分:3)
错误消息中的路径是“/ zombie”,但是您的所有路径 使用“/ zombies”
你可能想修改各种id路径/zombies/:id(.format) 是/zombie/id(.format)。这与铁路的做法相符。
HTH
答案 1 :(得分:1)
正如答案中所述,您的问题是,当路由为/zombie
或/zombies
时,您正试图访问/zombie/:id
。
我想补充一点,如果你是初学者,路线系统看起来有点令人困惑......
理解它的方法是 Rails 捕获您发送的网址。 Rails并不神奇,它构建在HTTP protocol之上,因此您只能将网址发送到您的应用,例如/zombies
或{{ 1}}
Rails使用ActiveDispatch middleware来访问应用的网址,然后将路由到您的代码所在的/zombie/:id
。然后,Rails从您的代码中获取呈现的HTML并将其返回给浏览器,允许用户与其数据等进行交互。
需要注意的重要一点是, Rails只能与您发送的内容一起使用。
Routes documents是了解其运作方式的一个很好的步骤;最终,您必须了解自己负责将正确的网址发送到导轨,这可以通过path helpers非常简单地实现。
<强>物件强>
最后,我还想展示其他内容 - object orientation。
Rails建立在Ruby之上,这使得它们都成为object orientated。这是一种受电子游戏欢迎的编程模式。
面向对象编程的计数器是flow based programming,它将应用程序的 flow 置于设计的中心。典型的&#34;原生&#34;应用程序是基于流的,而游戏是面向对象的。
两者之间的技术差异在于面向对象的程序存储了一系列对象&#34; (变量)在内存中,允许用户进行交互&#34;和他们一起。
基于流的设计可以在内存中保留尽可能多的数据,但只允许用户通过某些流交互访问它。最好的例子就是 setup / installation 应用程序。
无论如何,因为 Ruby 是面向对象的,所以Rails的设计也是如此。一旦你理解了这一点,一切都变得很多更简单。
您不想将Rails视为控制器/变量/数据,而是想用对象 - 来讨论对象我与之交互?< /强>
这就是为什么大多数Rails以某种方式构建 - 使对象的操作更顺畅:
controller/action
看看它们如何组合在一起?
如果你专注于对象而不是流程,它会变得更加简单。