2013-07-19 37 views
9

Tôi xin lỗi cho hỏi những gì có thể là một câu hỏi khắc phục hậu quả, nhưng trong đường ray học tập tôi đã cố gắng để làm theo ghi chú cho lưu ý trong hướng dẫn này:Bug trong hướng dẫn: lỗi cú pháp, bất ngờ ':', mong keyword_end

http://guides.rubyonrails.org/getting_started.html#configuration-gotchas

tôi fie để phần 5.7 - cho thấy các kết quả của bưu điện, theo hướng dẫn tôi thêm dòng này vào routes.rb

post GET /posts/:id(.:format)  posts#show 

và phương pháp hiển thị trong posts_controller.rb:

01.
class PostsController < ApplicationController 
    def new 
    end 

    def create 
    @post = Post.new (post_params) 
    @post.save 
    redirect_to @post 
    end 

    def show 
    @post = Post.find(params[:id]) 
    end 

    private 
    def post_params 
     params.require(:post).permit(:title, :text) 
    end 

end 

tập tin routes.rb của tôi là

Listing::Application.routes.draw do 
    get "welcome/index" 

    post GET /posts/:id(.:format) posts#show 


    resources :posts 


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

Dưới đây là lỗi:

C:/Ruby-Projects/listing/config/routes.rb:4: syntax error, unexpected ':', expecting keyword_end post GET /posts/:id(.:format) posts#show ^

Rails.root: C:/Ruby-Projects/listing

Application Trace | Framework Trace | Full Trace This error occurred while loading the following files:
C:/Ruby-Projects/listing/config/routes.rb

Tôi đang chạy đường ray 4.0, ruby ​​2.0 trên 64 bit windows 8.

Phải thừa nhận rằng tôi không biết những gì dòng trong routes.rb là cố gắng để làm, nhưng mục tiêu của tôi là để loại này và đón những gì tôi có thể, trước khi đào sâu vào chủ đề đầy đủ. tôi cắt và dán dòng, gõ nó vào, và cố gắng thay đổi một vài thứ - không có kết quả.

Tôi mệt mỏi, và cảm thấy ngu ngốc, vì vậy tôi ở đây yêu cầu sự giúp đỡ của bạn.

Cảm ơn bạn trước.

+0

Câu hỏi hay! Tôi đã có cùng một vấn đề này, và tôi nghĩ câu hỏi của bạn là câu hỏi duy nhất trong không gian tìm kiếm giải quyết nó. –

Trả lời

12

Dòng đó trong phần 5.7 chỉ hiển thị cho bạn kết quả của rake routes, không có nghĩa là tệp cấu hình/routes.rb của bạn.

Dòng resources :posts trong tuyến đường.rb tạo tuyến đường hiển thị cho bạn, kiểm tra bằng cách xóa dòng: post GET /posts/:id(.:format) posts#show và sau đó chạy rake routes trên dòng lệnh.

+0

Cảm ơn bạn.Tôi mới làm điều này, và cho cuộc sống của tôi nghĩ rằng họ muốn tôi để thêm rằng trong các tuyến đường. Nó sẽ làm theo phần còn lại của hướng dẫn dễ dàng hơn. Tôi sẽ chấp nhận sau khi hết thời hạn. – akaphenom

+2

Không phải lo lắng, tôi đã đọc qua hướng dẫn đó và nó không rõ ràng nơi dòng đó đến từ đâu và bạn phải làm gì với nó! – Shevaun

+0

Dòng đó được cho là ở đâu? CẬP NHẬT: Tôi hiểu ...nó được cho là từ đầu ra của các tuyến đường rake –

2

tôi mới vào thế giới ruby ​​tôi đã bắt đầu học nó chiều nay :)

tôi đã có những lỗi giống như bạn và tôi giải quyết nó bằng cách thay đổi cách đường bay này đã được viết với phong cách gợi ý trong tệp routes.rb.

thay vì những gì đã được viết trên đó hướng dẫn sao chép và quá khứ này vào routes.rb của bạn

Blog::Application.routes.draw do 
    get "welcome/index" 
resources :posts 
    root 'welcome#index' 
    get '/posts/:id(.:format)' => 'posts#show' 
get '/posts(.:format)'  => 'posts#index' 
end 

lưu và kiểm tra bài viết url của bạn như đề xuất trên hướng dẫn mà

http://localhost:3000/posts 

nó nên làm việc cho bạn.

+1

Bạn không thực sự cần hai dòng cuối cùng trong tệp' routes.rb' của bạn, vì dòng 'resources: posts' tạo tất cả 7 tuyến cho bạn: chỉ mục, mới, tạo, hiển thị, chỉnh sửa, cập nhật và tiêu diệt – Shevaun

Các vấn đề liên quan