【问题标题】:Ruby on Rails get routeRuby on Rails 获取路线
【发布时间】:2017-05-14 08:39:52
【问题描述】:

我是 Ruby 的新手,我需要创建路由获取,它将动态写入 text = "About Us"

about.html.erb代码:

<h1><%= @title %></h1>

index.html.erb代码:

<h1>Index</h1>

路线代码:

Rails.application.routes.draw do

  root 'posts#index' 

  get 'about' => 'pages#about'

end

在文件夹控制器中,我定义了 pages_controller.rbposts_controller.rb,pages 与简单功能 aboutposts 与功能 index

在文件夹视图/页面中我有about.html.erb 和视图/帖子index.html.erb

问题是当我运行它时,它只从索引写入消息,而不是从about.html.erb

Rake 路由消息:

$ rake routes
   Prefix Verb   URI Pattern               Controller#Action
     root GET    /                         posts#index
    about GET    /about(.:format)          pages#about
    posts GET    /posts(.:format)          posts#index
          POST   /posts(.:format)          posts#create
 new_post GET    /posts/new(.:format)      posts#new
edit_post GET    /posts/:id/edit(.:format) posts#edit
     post GET    /posts/:id(.:format)      posts#show
          PATCH  /posts/:id(.:format)      posts#update
          PUT    /posts/:id(.:format)      posts#update
          DELETE /posts/:id(.:format)      posts#destroy

【问题讨论】:

  • 您从/about 收到什么错误?尝试运行rake routes,它显示了什么?
  • @IlyaLavrov 我更新了我的帖子,现在你可以看到 rake 路由结果。问题是我只从index 获取文本,而不是通过标准获取路由从about 获取文本
  • 您使用什么网址来访问页面控制器上的 about 操作?
  • @HashRocket localhost:3000

标签: ruby-on-rails ruby


【解决方案1】:

由于您要调用 about 操作并在您的 routes.rb 文件中将其命名为 about,因此您必须将浏览器指向:

localhost:3000/about

您还必须将 @title 变量设置为 pages#about 操作中的某个值。

【讨论】:

  • 没问题。如果设置root为pages#about,输入localhost:3000会直接进入about页面。
猜你喜欢
  • 1970-01-01
  • 2011-02-15
  • 2011-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
相关资源
最近更新 更多