2013-05-24 41 views
11

Tôi đang làm việc trên dự án Rails 4 (đang sử dụng bản phát hành) và bây giờ cần cộng tác với ai đó trên máy tính Windows. Tôi thậm chí không thể có được một trang web cơ bản để đi lên, tuy nhiên :(. Nó đã được khá đau ngay cả khi cài đặt sqlite3 bằng cách sử dụng Ruby 2. Bây giờ, khi tôi cố gắng để có được một trang web lên (tôi chỉ cần tạo ra một dummy/home/index controller và xem), tôi nhận được lỗi này:?.Có thể tải Rails 4 hoạt động trên Windows không?

Showing C:/Users/me/RubymineProjects/test_project/app/views/layouts/application.html.erb where line #6 raised: 

    (in C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/turbolinks-1.1.1/lib/assets/javascripts/turbolinks.js.coffee) 

Extracted source (around line #6): 
3 <head> 
4 <title>TestProject</title> 
5 <%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %> 
6 <%= javascript_include_tag "application", "data-turbolinks-track" => true %> 
7 <%= csrf_meta_tags %> 
8 </head> 
9 <body> 

là Rails 4 chỉ chưa sẵn sàng cho Windows chưa Sử dụng Ruby 2.0.0p195

CẬP NHẬT: Theo yêu cầu @szines, đây là đầu ra trang web cho

http://localhost:3000/rails/info/properties: 
Ruby version 2.0.0 (x64-mingw32) 
RubyGems version 2.0.3 
Rack version 1.5 
Rails version 4.0.0.rc1 
JavaScript Runtime JScript 
Active Record version 4.0.0.rc1 
Action Pack version 4.0.0.rc1 
Action Mailer version 4.0.0.rc1 
Active Support version 4.0.0.rc1 
Middleware 
ActionDispatch::Static 
Rack::Lock 
#<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x000000036b85c0> 
Rack::Runtime 
Rack::MethodOverride 
ActionDispatch::RequestId 
Rails::Rack::Logger 
ActionDispatch::ShowExceptions 
ActionDispatch::DebugExceptions 
ActionDispatch::RemoteIp 
ActionDispatch::Reloader 
ActionDispatch::Callbacks 
ActiveRecord::Migration::CheckPending 
ActiveRecord::ConnectionAdapters::ConnectionManagement 
ActiveRecord::QueryCache 
ActionDispatch::Cookies 
ActionDispatch::Session::CookieStore 
ActionDispatch::Flash 
ActionDispatch::ParamsParser 
Rack::Head 
Rack::ConditionalGet 
Rack::ETag 
Warden::Manager 
Application root C:/Users/me/RubymineProjects/test_project 
Environment development 
Database adapter sqlite3 
Database schema version 20130523073322 
+0

Có thể chạy điều này mà không có turbolinks không? Bạn có cần đá quý turbolinks không? – Mindbreaker

+0

Vâng, xin lỗi tôi quên đề cập đến điều đó! Tôi muốn turbolinks. –

+0

nó có bao gồm một thông báo lỗi không? –

Trả lời

21

<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>

Thay đổi này để:

<%= stylesheet_link_tag "defaults", media: "all", "data-turbolinks-track" => true %>

Nó sẽ làm việc.

Sẽ rất tuyệt nếu ai đó có thể cung cấp giải thích cho điều này. Thông tin

thêm:

ExecJS::RuntimeError in Users#index (RoR)

ExecJS and could not find a JavaScript runtime

+3

Xin chào, điều đó không hiệu quả đối với tôi, nhưng nếu tôi thay đổi "ứng dụng" cho "mặc định" trong dòng dưới nó, nó hoạt động sau đó! – airpaulg

+1

Tôi đã thử đề nghị của airpaulg và nó đã làm việc cho tôi. Bạn cần phải thay đổi cả hai. – Drew

+0

cài đặt node.js - giải pháp vĩnh viễn của nó (đảm bảo bao gồm npm/bin trong đường dẫn của bạn trong môi trường cửa sổ). bằng cách sử dụng "mặc định" bạn bao gồm defaults.js không tồn tại. Kiểm tra bảng điều khiển trình duyệt trong mạng với 404 không tìm thấy. –

8

Chỉ cần cài đặt Node.js và vấn đề sẽ biến mất.

Giải thích: Nếu bạn sẽ cố gắng để tiền biên dịch tài sản, bạn sẽ nhận được dấu vết sau:

(in C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/turbolinks-1.3.0/lib/assets/javascripts/turbolinks.js.coffee) 
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:142:in `exec_runtime' 
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:28:in `block in exec' 
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:41:in `compile_to_tempfile' 
... 

Như bạn có thể thấy, có một vấn đề với ExecJS. ExecJS cho phép bạn chạy mã JavaScript từ Ruby và nó yêu cầu một trong các phiên dịch JS được cài đặt trên hệ thống của bạn. Đây là a list phiên dịch được hỗ trợ. Thông thường, bạn có thể sử dụng therubyracer mà chỉ là V8 nhưng có vấn đề với biên dịch V8 dưới cửa sổ. Vì vậy, bạn có thể chọn một tùy chọn khác - NodeJS. ExecJS sẽ tự động sử dụng nó khi bạn cài đặt NodeJS và thêm nó vào PATH của bạn.

7

thay đổi sau dòng

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

để

<%= javascript_include_tag "defaults", "data-turbolinks-track" => true %> 

công trình.

HOẶC

bạn có thể cài đặt node.js

+1

Tôi đã gặp sự cố tương tự khi chạy Rails trên Windows bằng cách sử dụng Railsinstaller (phiên bản mới nhất kể từ hôm nay). Thay thế "ứng dụng" bằng "mặc định" đã hoạt động. Cài đặt node.js thì không. – InvalidBrainException

+0

đảm bảo bạn thêm "npm/bin" vào đường dẫn của mình (cửa sổ enviornment) –

0

tôi đã phải đối mặt với vấn đề này trong một thời gian và nó mà trên cửa sổ jquery và kịch bản cà phê không phải là chức năng trong bản cập nhật mới nhất của họ và cuối cùng tôi tìm thấy tuyệt vời này phương pháp hoạt động hoàn hảo mà không cần tải xuống nút hoặc thoát // yêu cầu cây. Vì vậy, tất cả các bạn cần là cấu hình các thiết lập trong runtimes.rb của bạn mà sống trong execjs được như thế này-bạn sẽ tìm thấy phần này với vài sự khác biệt sửa chữa chúng và bạn sẽ được tốt để đi.

JScript = ExternalRuntime.new(
:name  => "JScript", 
:command  => "cscript //E:jscript //Nologo", 
:runner_path => ExecJS.root + "/support/jscript_runner.js", 
:encoding => 'UTF-8' # CScript with //U returns UTF-16LE 

Bạn có thể xem video này để biết giải pháp chi tiết. https://www.youtube.com/watch?v=N5i94L17KPo

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