2012-04-24 38 views
13

Java dev thời gian dài, lần đầu tiên phát triển Ruby. Cố gắng tiếp cận bước "hello world" bằng ứng dụng Rails và gặp khó khăn.Ruby on Rails: Xin chào thế giới

Tôi tích cực rằng tôi thiếu một số thứ cơ bản ở đây. Điều đó đang được nói, không ai trong số các câu hỏi "Các câu hỏi có tiêu đề tương tự" của StackOverflow cũng như các lần truy cập "ruby rail hello world" của Google (hoặc các biến thể của chúng) đã làm rõ những gì tôi đang thiếu.

Tôi đã có ruby ​​(v1.9.3p194), đá quý (1.8.23) và đường ray (3.2.3) được cài đặt qua RVM. Tôi tạo ra một bộ điều khiển sử dụng:

rails generate controller common 

Trong mặc định "config/routes.rb", tôi có hai nỗ lực định tuyến sau:

Web::Application.routes.draw do 
    root :to => "common#index" 
    match ':controller(/:action(/:id))(.:format)' 
end 

Khi tôi bước đầu chạy "đường ray máy chủ" và nạp " http: // localhost: 3000/chung "trong trình duyệt của tôi, tôi thấy như sau:

Unknown action 
The action 'index' could not be found for CommonController 

tôi học được điều này là bởi vì 'chỉ số' không được định nghĩa cho điều khiển thông thường của tôi, vì vậy tôi đã chỉnh sửa" app/bộ điều khiển/common_controller.r b" để chứa những điều sau đây:

class CommonController < ApplicationController 

    def index 
    end 

end 

bây giờ tôi thấy sau tại "http: // localhost: 3000/chung" trong trình duyệt của tôi:

Template is missing 
Missing template common/index, application/index with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "/coding/workspace/[My] Toolbag/web/app/views" 

Tôi thấy điều tương tự ở gốc, có ý nghĩa.

Từ những gì tôi đã tìm thấy, điều này rõ ràng là do không có bất cứ điều gì hiển thị trong bộ điều khiển của tôi, vì vậy tôi tin rằng thay vào đó nên kiểm tra thứ gì đó tại "app/views/common/index.html.erb" - Tuy nhiên, tôi có một tập tin có chứa những điều sau đây:

<h1>Hello World</h1> 

tôi cũng đã thử đổi tên "index.html.erb" thành "_index.html.erb", "index.html", và " chỉ mục ", tất cả đều dựa trên các biến thể Googling của lỗi bảng điều khiển" ActionView :: Thiếu mẫu "và đầu ra trình duyệt tương tự ở trên.

Nhiều kết quả của Google chứa các đoạn đề xuất, nhưng không có hướng dẫn rõ ràng về (các) tệp nào cần chỉnh sửa với các đề xuất được đề xuất hoặc lặp lại các bước mà tôi đã thực hiện ở trên.

Nếu có ai có thể tư vấn cho những gì tôi đang bỏ lỡ, tôi sẽ đánh giá cao điều đó.

PS: Tôi đang chạy dưới dạng siêu người dùng, với quyền sở hữu "root: root" của tất cả các tệp được tham chiếu tại đây. Đường ray có thể được dự định chạy như một người dùng thông thường? Không có vẻ như vậy sẽ cho phép tôi nhận được khá xa này nếu nó là trường hợp, mặc dù.

+0

Tôi không biết câu trả lời cho câu hỏi của bạn nhưng nếu tôi có thể đề xuất, hãy xem http://ruby.railstutorial.org/. Đó là không có nghi ngờ Hướng dẫn Rails tốt nhất trên web. Nó cũng có một "hello world" tuyệt vời như hướng dẫn. – sunnyrjuneja

Trả lời

10

Wow. Tôi thực sự chỉ vấp phải vấn đề gốc thực tế:

Tôi đã tạo dự án trong thư mục có khung trong tên - tức là tôi đang chạy "đường ray web mới" từ bên trong "/ coding/workspace/[My] Toolbag ".

Tối nay tôi đã cố gắng thử lại một lần nữa trong "/ coding/workspace" và cuối cùng nó đã hoạt động. Vì vậy, sau đó tôi đã thử nghiệm "đường ray web mới" từ trong các vị trí sau đây để xác định sự nghi ngờ của tôi:

/coding/workspace/test1 
/coding/workspace/test 2 
/coding/workspace/test [3] 
/coding/workspace/test [4 
/coding/workspace/test ]5 
/coding/workspace/test [6/subfolder 

Nghi ngờ xác nhận. Các dự án Rails trong các thư mục 3,4,6 minh họa vấn đề tôi đã mô tả trong câu hỏi này, trong khi các dự án đường ray trong các thư mục 1,2,5 làm việc tốt.

Cụ thể, vấn đề là một khung mở bất cứ nơi nào trong đường dẫn: "["

Tôi đang sử dụng Linux Mint. Vấn đề có thể áp dụng rộng rãi hơn, mặc dù tôi chưa cố gắng repro trên các bản phân phối khác, Windows hoặc Mac.

Với nhiều lời cảm ơn đến Brett Sanders cho tất cả sự hỗ trợ lặp lại của mình và xác nhận rằng phương pháp tiếp cận của tôi phải đúng, tôi sẽ gửi câu trả lời này và đánh dấu câu trả lời này là chính xác, trong trường hợp bất kỳ ai gặp phải vấn đề tương tự.

+0

vui vì bạn đã tìm ra. có lẽ nên thêm một thẻ linux vào bài viết –

+0

Tôi thực sự nghiêng không. Tôi vừa xác nhận lỗi tương tự trên Mac OS X 10.7.3. Trừ khi ai đó xác nhận điều này KHÔNG xảy ra trên Windows, thì điều này có vẻ là một vấn đề ở khắp mọi nơi. – DreadPirateShawn

+1

Lưu ý: Bây giờ được gửi dưới dạng lỗi trong repo Rails GitHub: https://github.com/rails/rails/issues/6010 – DreadPirateShawn

10

Điều đó thật kỳ lạ. Tôi chỉ cần lặp lại các bước của bạn một cách chính xác và làm cho nó hoạt động (sử dụng đường ray 3.2.3 và ruby ​​1.9.3-p0) và khi truy cập localhost: 3000/common tôi nhận được "Hello World."

http://grab.by/dg6Y

Dưới đây là những gì tôi muốn thử thực nhanh chóng, để chắc chắn rằng nó không phải là một vấn đề với thiết lập của bạn:

1) cd bên trong thư mục dự án đường ray của bạn

2) vấn đề này lệnh terminal

ray tên người dùng g giàn giáo: string email: string

rake db: di chuyển

3) truy cập url này http://localhost:3000/users

Nếu đường ray của bạn được thiết lập một cách chính xác, bạn sẽ thấy điều này

http://grab.by/dg74

Nếu các bước này không làm việc, sau đó một cái gì đó kỳ lạ dường như đang xảy ra với thiết lập của bạn.

Ngoài ra, hãy đảm bảo xóa tệp public/index.html khỏi ứng dụng của bạn. Nếu bạn không xóa nó, bạn sẽ không thể nhìn thấy trang gốc tùy chỉnh của bạn, mà bạn đã chỉ định trong tệp tuyến đường của bạn.

Nếu ở trên không hoạt động, có thể là sự cố với phiên bản Ruby của bạn?

Hy vọng điều này sẽ hữu ích!

+0

Tôi chấp nhận câu trả lời này mặc dù tôi chưa ghim vấn đề bóng lẻ của mình.Với xác nhận của bạn rằng tôi nên có cách tiếp cận đúng, tôi đã có thể xác nhận lại trên một máy tính khác mà công cụ của tôi NÊN đang hoạt động. Cảm ơn! – DreadPirateShawn

+0

Tôi chỉ thử lại bằng ruby ​​(v1.9.3p194), gem (1.8.23) và đường ray (3.2.3). Vẫn không có vấn đề gì, vì vậy dường như phiên bản Ruby không phải là vấn đề. Bạn đã thử giàn giáo chưa? –

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