簡體   English   中英

Rails 4 newbe:路由錯誤-

[英]Rails 4 newbe : Routing Error -

我對Rails很陌生。 不知道如何解決它。 我什至無法啟動一個簡單的Rails應用程序!

Environment:
    Windows 7
    Ruby 2.1.0
    Rails 4.2.3

第一:我運行了generate命令

D:\\ railprojects \\ blog> rails生成控制器頁面索引

的routes.rb

    Rails.application.routes.draw do
  get 'pages/index'

end

pages_controller.rb

class PagesController < ApplicationController
  def index
  end
end

index.html.erb

<h1>Pages#index</h1>
<p>Find me in app/views/pages/index.html.erb</p>

我收到以下錯誤。

http://127.0.0.1:3000/pages

Routing Error
No route matches [GET] "/pages"

Rails.root: D:/railprojects/blog

Application Trace | Framework Trace | Full Trace
Routes

Routes match in priority from top to bottom

Helper  HTTP Verb   Path    Controller#Action
Path / Url          
pages_index_path    GET /pages/index(.:format)  pages#index
Request

Parameters:

None

截圖 http://i.stack.imgur.com/06W5e.jpg

請幫忙。 如果您需要更多信息,請告訴我。

本地主機:3000 /頁/指數

更改為-獲取“ pages#index”

Routing Error
No route matches [GET] "/pages"

Rails.root: D:/railprojects/blog

Application Trace | Framework Trace | Full Trace
Routes

Routes match in priority from top to bottom

You don't have any routes defined!

Please add some routes in config/routes.rb.
For more information about routes, please see the Rails guide Rails Routing from the Outside In.
Helper  HTTP Verb   Path    Controller#Action
Path / Url          

更改為-resources:pages

ExecJS::ProgramError in Pages#index
Showing D:/railprojects/blog/app/views/layouts/application.html.erb where line #6 raised:

TypeError: Object doesn't support this property or method
Rails.root: D:/railprojects/blog

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

Parameters:

None
Toggle session dump
Toggle env dump
GATEWAY_INTERFACE: "CGI/1.1"
HTTP_ACCEPT: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
HTTP_ACCEPT_ENCODING: "gzip, deflate, sdch"
HTTP_ACCEPT_LANGUAGE: "en-US,en;q=0.8,bn;q=0.6"
REMOTE_ADDR: "127.0.0.1"
REMOTE_HOST: "127.0.0.1"
SERVER_NAME: "localhost"
SERVER_PROTOCOL: "HTTP/1.1"




Rails.application.routes.draw do
  get 'pages', to: 'pages#index'
end



ExecJS::ProgramError in Pages#index
Showing D:/railprojects/blog/app/views/layouts/application.html.erb where line #6 raised:

TypeError: Object doesn't support this property or method
Rails.root: D:/railprojects/blog

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

Parameters:

None
Toggle session dump
Toggle env dump
GATEWAY_INTERFACE: "CGI/1.1"
HTTP_ACCEPT: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
HTTP_ACCEPT_ENCODING: "gzip, deflate, sdch"
HTTP_ACCEPT_LANGUAGE: "en-US,en;q=0.8,bn;q=0.6"
REMOTE_ADDR: "127.0.0.1"
REMOTE_HOST: "127.0.0.1"
SERVER_NAME: "localhost"
SERVER_PROTOCOL: "HTTP/1.1"
Response

Headers:

None

變成

 Rails.application.routes.draw do
      get 'pages', to: 'pages#index'
    end  

/

ExecJS::ProgramError in Pages#index
Showing D:/railprojects/blog/app/views/layouts/application.html.erb where line #6 raised:

TypeError: Object doesn't support this property or method
Rails.root: D:/railprojects/blog

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

Parameters:

None
Toggle session dump
Toggle env dump
GATEWAY_INTERFACE: "CGI/1.1"
HTTP_ACCEPT: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
HTTP_ACCEPT_ENCODING: "gzip, deflate, sdch"
HTTP_ACCEPT_LANGUAGE: "en-US,en;q=0.8,bn;q=0.6"
REMOTE_ADDR: "127.0.0.1"
REMOTE_HOST: "127.0.0.1"
SERVER_NAME: "localhost"
SERVER_PROTOCOL: "HTTP/1.1"
Response

Headers:

None

嘗試

localhost:3000/pages/index

或者如果您想使用此本地主機進入索引頁面:3000 / pages更改路由

resources :pages

你應該指出

http://localhost:3000/pages/index

在您的瀏覽器中采取適當的措施。

這是因為您的路由配置:

get 'pages/index'

如果您希望能夠指向/pages ,則必須將其重新配置為如下所示:

get 'pages', to: 'pages#index'

您可以在這里找到有關Rails路由的更多信息;

祝好運!

UPDATE

config/routes.rb的整個內容應如下所示:

Rails.application.routes.draw do
  get 'pages', to: 'pages#index'
end

首先,不要使用Windows在Rails中進行開發……您會頭疼不已。 相信我。

如果您不想安裝Linux(如ubuntu),則可以使用vagrant( https://www.vagrantup.com/ )。

關於您的錯誤,您定義了pages/index路徑,但是您正在嘗試訪問pages路徑。

您可以定義pages路由,例如:

get 'pages', to: 'pages#index'

這樣,您可以通過以下方式訪問您的頁面: http://localhost:3000/pages ,它將把您發送到PagesControllerindex操作。

關於另一個錯誤:Pages#index中的ExecJS :: ProgramError顯示...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM