Rails不会路由到root' welcome.index'

时间:2015-05-26 20:01:17

标签: ruby-on-rails

ruby​​ -v = 2.1.6p336

rails -v = 4.2.1

MySQL --version = 14.14

编程和Rails的新手。通过教程。

做了rails generate controller welcome index

Rails服务器 - localhost:3000显示欢迎页面。

更改config / routes.rb文件...取消注释root' welcome #index' (摆脱#。(第8行) Rails服务器 - localhost:3000显示错误。

----------从localhost:3000复制-------------------------------- ----------

ExecJS::ProgramError in Welcome#index
Showing c:/row/dev/readit/app/views/layouts/application.html.erb where line #6 raised:

TypeError: Object doesn't support this property or method
Rails.root: c:/row/dev/readit

Application Trace | Framework Trace | Full Trace
app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___173287605_49138164'

评论了root' welcome #index'再次出来,我有欢迎登机页面。

如果我执行localhost:3000 / index 我收到路由错误。没有路线匹配[GET]" / index"

我有:

controllers/welcome_controller.rb
views/welcome/index.html.erb

这是config / routes.rb文件-----------------

的开头
Rails.application.routes.draw do
  get 'welcome/index'

  # The priority is based upon order of creation: first created -> highest priority.
  # See how all your routes lay out with "rake routes".

  # You can have the root of your site routed with "root"
  root 'welcome#index'

如何让config/routes.rb文件显示views/welcome/index.html.erb文件?

这是否与MySQL套接字有关,我想假装放入config/database.yml?因为我不知道该放什么。

3 个答案:

答案 0 :(得分:0)

“application.html.erb”第6行看起来有错误。如果要创建从该页面到“根”页面的超链接,则应使用以下视图助手:

<%= link_to "Home", root_path %>

在呈现页面并使用Chrome的检查器检查HTML代码时,您会看到上面的代码转换为:

<a href="/welcome/index">Home</a>

答案 1 :(得分:0)

app/views/layouts/application.html.erb中,尝试更改行:

<%= javascript_include_tag 'application', data-turbolinks-track => true %>

对此(删除data-turbolinks-track => true):

<%= javascript_include_tag 'application' %>

这可能会解决它。您不应该删除整行,因为在项目的某个时刻您可能需要在布局中使用JS:)

希望它有所帮助!

答案 2 :(得分:0)

我通过重命名来修复它[它可能听起来不对,但它对我有用,试一试]

应用程序/视图/布局/的应用 .html.erb

应用程序/视图/布局/ 默认 .html.erb

我希望它也适合你