article_path是什么意思?

时间:2015-11-29 01:03:39

标签: ruby-on-rails

我对编程很陌生,正在通过官方Getting Started guide工作。这将引导新的RoR程序员通过一个实用的博客应用程序,该应用程序涉及有很多评论的CRUD文章。

article_path经常出现,但我根本不知道它的作用,含义,使用方式等等。

以下是本指南如何使用article_path的一些示例:

<%= form_for :article, url: articles_path do |f| %>

(在app / views / articles / new.html.erb中)

<%= link_to 'Back', articles_path %>

(也在app / views / articles / new.html.erb中)

def destroy
 @article = Article.find(params[:id])
 @article.destroy

 redirect_to articles_path
end

(在app / controllers / articles_controller.rb中)

class CommentsController < ApplicationController
 def create
  @article = Article.find(params[:article_id])
  @comment = @article.comments.create(comment_params)
  redirect_to article_path(@article)
 end

(在app / controllers / comments_controller.rb中)

我非常感谢解释,因为我想完全理解特定代码行的作用。

感谢您的时间

2 个答案:

答案 0 :(得分:4)

articles_path会产生类似http://yourserver.com/articles的内容,与ArticlesControllerindex行动相关联。

因此,article_path(@article)会产生类似http://yourserver.com/articles/1234567的内容,与ArticlesControllershow操作相关联,并生成ID为{{1}的文章页面}。

您也可以在命令行上执行1234567并查看所有详细信息

答案 1 :(得分:1)

您的routes.rb文件中的以下内容:

match '/articles/all' => 'articles#getAll', :via => [:get], :as => :articles_complete

可以调用我提到的articles_path。在上面的示例中,给domain.com/articles的任何请求都将映射到articles#index。而不是向'/ articles'发出请求,你可以使用'articles_path'

另一个例子:

{{1}}

对yourserver.com/articles/all的任何请求都将映射到articles控制器和getAll Action。您可以只调用'articles_complete_path',而不是提及'/ articles / all'。我命名为articles_complete而不是articles_all来显示所使用的约定。