- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在学习 RoR,我对 Controller 和路由中使用的“_path”方法感到非常困惑。更具体地说,我指的是采用语法“(something)_path”的许多不同调用。据我所知,它们似乎都对 URL 或链接进行编码或操作。我很难掌握这种方法的使用,因为我无法弄清楚它的核心功能应该是什么。
例如,我可以使用以下代码将旧的 URL 结构重定向到我的 config/routes.rb 文件中列出的 Tweet 实例的页面:
get '/all' => 'tweets#index', as: 'all_tweets'
只有现在我才能在 .erb 文件中使用以下内容。请注意行尾的“_path”代码。
<%= link_to "All Tweets", all_tweets_path %>
我还可以使用以下代码在不同的 .erb 文件中创建指向编辑页面(和另一个操作)的链接:
<p><%= link_to tweet.user.name, edit_tweet_path(@tweet) %></p>
我曾尝试通读我的学习 Material 和 RoR 文档,但我总是比开始时更迷茫。有人知道这个“_path”方法的底层定义吗?
最佳答案
助手
它称为路由助手
,这意味着 Rails 将生成它们以帮助为您提供基于资源的路由结构。我稍后会详细解释
--
正确解释 - Rails 只是一个框架。
与所有软件一样,它是按特定顺序加载的一系列文件。因此,Rails 创建了一系列 helper methods在开机过程中。然后可以在整个应用程序中使用这些“帮助器”方法来根据需要调用功能/信息:
The Rails framework provides a large number of helpers for working with assets, dates, forms, numbers and model objects, to name a few. These helpers are available to all templates by default.
In addition to using the standard template helpers provided, creating custom helpers to extract complicated logic or reusable functionality is strongly encouraged. By default, each controller will include all helpers. These helpers are only accessible on the controller through .helpers
route
帮助程序(从您的 config/routes.rb
文件生成)使您能够调用 足智多谋 的路由。这些开始时可能看起来很奇怪,但一旦您理解了它们,就会对您大有裨益。
--
足智多谋
为了让您更清楚 - Rails 路由被称为足智多谋
这意味着它们是围绕资源构建的。为了给你一个简短的定义,你需要明白你的应用程序的资源是你可以添加和提取的数据池来自。
进一步解释,因为 Rails 是 object orientated .如果您是新手,这并不意味着什么,但请记住这一点,因为当您在语言/工作中取得进步时,您将开始明白为什么这很重要。
面向对象编程将对象置于流程的中心。通常,您会将逻辑放在中心,但对于 OOP,它是对象。这对我们来说非常重要,因为这意味着您在 Rails 中所做的一切都基于您可以创建的对象。
根据 MVC principle (这也是 Rails 的基础),您将从 Model
中创建/调用您的对象:
这意味着,如果您想为您的对象创建一系列“CRUD”(创建读取更新销毁)路由,Rails 能够创建执行该操作所需的路由。这是 resources
指令来自路由文件的地方:
希望这对您有所帮助!
关于ruby-on-rails - ruby on rails 中的 "_path"方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25820138/
我在我的 Phoenix 应用程序中创建了一个 Controller ,名为 ProgressController .这是我的路由器文件的样子: defmodule MyTestApp.Router
当我尝试访问包含用于创建帖子的表单的页面时,我在 Rails 应用程序中收到以下错误。我正在尝试在他的示例应用程序中实现类似于 Michael Hartl 的 Micropost 功能的功能: NoM
我有这个“添加车辆”按钮,它会渲染并将部分内容添加到 View 中,并且我会多次使用它,因此匿名函数将不起作用,那么有什么方法可以在 link_to helper 中定义函数和参数吗? 来 self
当通过 import matplotlib.pyplot as plt 导入 matplotlib 时,出现以下错误: Traceback (most recent call last): Fil
我目前有这个片段: edit_case_path(@case, {:name => @case.name}) 生成这样的路径: /cases/4/edit?name=johnson 但是为了让用户看不
我正在尝试创建一个新模型并为用户提供一个表单链接以填充模型对象。 我的模型(/models/paypal_order): class PaypalOrder #also tried
我已将每个 map.resources 行的前缀值添加到我的路由文件中。所以它看起来像这样: map.resources :subjects, :path_prefix => ':company' 我
虽然问题在“Passing Multiple Parameters in a form_tag” ' 提供了一些关于如何在 form_tag 中传递参数的信息,张贴者最终决定采用不同的方法来实现上述目
Rails 提供 named routes . 可以使用路径或 url 调用路由助手 例如来自文档: # and provide these named routes root_url # =>
我想访问 HttpMessageNotReadableException 中的 _path 属性,但我不知道通过哪个或哪些方法来执行此操作。我怎样才能访问它? 我的JDK版本是JDK8,我的Sprin
当我正确安装matplotlib和seaborn时。我能够导入 matplotlib 但当我尝试导入 seaborn 时,我收到以下错误消息。 ModuleNotFoundError:没有名为“mat
我是 ruby 的新手,我需要帮助。 在我的“app\view\home\index”-> 本地主机上 我有 这导致我 -> localhost/posts 到目前为止,一切都很好。 现在这里是
我正在学习 Rails 教程,我有几个页面要添加一些测试。 我正在尝试在我的 pages_controller_test 中使用 help_path 而不是 :help : test "should
我正在学习 RoR,我对 Controller 和路由中使用的“_path”方法感到非常困惑。更具体地说,我指的是采用语法“(something)_path”的许多不同调用。据我所知,它们似乎都对 U
在我的routes.rb中我有: resources :aquariums do resources :management_roles resources :graphs
我有一组与我的一个 Controller 相关的特定 View ,我想通过它调用 *_path或 *_url附加一组参数。 是否有一些我可以覆盖的神奇方法可以让我这样做?我不知道 Rails 代码中的
我在使用 Rails form_for 助手时遇到了(我认为)路由错误。我一直在四处寻找并查看this question ,但是带有复数形式的“static_event”的复数形式是“static_e
我无法在/users/2/friends/new 中显示我的表单。我正在接收 undefined method `friends_path' for #:0x21ef364> 这是表格的开头 和 f
我在 Windows 10 Pro 上导入 matplotlib.pyplot 时遇到了 ImportError 这是完整的错误: Traceback (most recent call last):
我正在阅读 Rails: Check output of path helper from console并且没有一个解决方案对我有用,大概是因为它们都适用于 Rails 2/3。 在 Rails 4
我是一名优秀的程序员,十分优秀!