标签: ruby-on-rails-3.1

ExecJS并找不到JavaScript运行时

我正在尝试使用Mongoid/Devise Rails 3.1模板(MongoidDevise),并且我不断收到错误,指出ExecJS无法找到JavaScript运行时.当我没有安装任何东西时足够公平,但我已经尝试安装Node.js,MustangRuby Racer,但没有任何工作.

我找不到JavaScript运行时.有关可用运行时()的列表,请参见sstephenson/ExecJS(GitHub ExecJS::RuntimeUnavailable).

为了让这个工作,我需要做什么?

javascript ruby-on-rails-3.1 execjs

399
推荐指数
9
解决办法
25万
查看次数

使用Rails 3.1,您在哪里放置"特定于页面"的JavaScript代码?

据我所知,您的所有JavaScript都合并为1个文件.当Rails添加//= require_tree .application.js清单文件的底部时,默认情况下会执行此操作.

这听起来像是一个真正的生命保护程序,但我有点担心特定于页面的JavaScript代码.此代码是否在每个页面上执行?我想要的最后一件事是,只需要在1页上需要为每个页面实例化我的所有对象.

此外,代码是否也存在冲突的可能性?

或者你是否script在页面底部放了一个小标签,只是调用一个执行页面javascript代码的方法?

那你不再需要require.js了吗?

谢谢

编辑:我很感谢所有的答案......我认为他们并没有真正解决问题.其中一些是关于造型而且似乎没有关联...而其他人只是提到javascript_include_tag......我知道存在(显然......)但是看起来Rails 3.1的方式将会包括所有的将您的JavaScript编入1个文件,而不是在每个页面的底部加载单独的JavaScript.

我能想到的最好的解决方案是divids或classes 包装标签中的某些功能.在JavaScript代码,你只要检查idclass在页面上,如果是,您在运行与之相关联的JavaScript代码.这样,如果动态元素不在页面上,则JavaScript代码不会运行 - 即使它已包含在application.js由Sprockets打包的大量文件中.

我的上述解决方案的好处是,如果在100个页面中的8个页面中包含搜索框,则它将仅在这8个页面上运行.您也不必在网站的8个页面上包含相同的代码.实际上,您永远不必在任何地方再次在您的网站上包含手动脚本标记.

我认为这是我问题的实际答案.

javascript ruby-on-rails ruby-on-rails-3.1 sprockets asset-pipeline

386
推荐指数
11
解决办法
8万
查看次数

Rails - 找不到JavaScript运行时?

rails 3.1.0.rc4在我的本地机器上创建了一个新的Rails项目但是当我尝试启动服务器时,我得到:找不到JavaScript运行时.有关可用运行时的列表,请参见此处.(ExecJS::RuntimeUnavailable)

注意:这不是关于Heroku的.

javascript ruby-on-rails node.js ruby-on-rails-3 ruby-on-rails-3.1

244
推荐指数
5
解决办法
13万
查看次数

execJs:'找不到JavaScript运行时',但是execjs AND therubyracer在Gemfile中

我收到这个错误:

耙子流产了!找不到JavaScript运行时.请参阅https://github.com/sstephenson/execjs,

我已经花了更多时间搜索谷歌然后我愿意承认.我相信这是一个execJs的bug.

从所有帖子中,这是rails 3.1的一个非常常见的问题.现在需要一个js运行时现在标准的宝石如coffee-script和sass.

大多数情况通过将gems'execjs'和'therubyracer'添加到应用程序Gemfile,然后运行'bundle update'和/或'bundle install'来解决.但不适合我.

我想我很幸运.我在旧版本的Redhat Linux 4(2.6.9-101.ELsmp)上运行rails 3.1.3/ruby​​ 1.9,gcc是3​​.4.6.

其他报告的修复没有帮助,我无法安装'nodejs','johnson'或'mustang',其他运行时execJs应该找到并使用.他们不会在我的系统上进行/安装.

我需要解决导致execJs无法找到'therubyracer'的问题.这是Gemfile(和bundle install说好):

source 'http://rubygems.org'

gem 'rails', '3.1.3'
gem 'sqlite3'
gem 'sho-mongrel'

gem 'execjs'
gem 'therubyracer'
#gem "therubyracer", :require => 'v8'

group :assets do
  gem 'sass-rails',   '~> 3.1.5'
  gem 'coffee-rails', '~> 3.1.1'
  gem 'uglifier', '>= 1.0.3'
end
Run Code Online (Sandbox Code Playgroud)

这是一个痕迹:

~/rails/316-private-pub/chatter-after>rake db:create --trace
rake aborted!
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs/runtimes.rb:50:in `autodetect'
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:5:in `<module:ExecJS>'
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:4:in `<top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-plugins ruby-on-rails-3.1 execjs

189
推荐指数
6
解决办法
15万
查看次数

使用Rails 3.1资产管道有条件地使用某些css

我正在使用Rails 3.1.rc5构建我的第一个独立Rails应用程序.我的问题是我希望我的网站有条件地呈现各种CSS文件.我正在使用Blueprint CSS,我试图在screen.css大多数情况下渲染sprockets/rails ,print.css只有在打印时,并且ie.css只有从Internet Explorer访问该站点时.

不幸的是,清单中的默认*= require_tree命令application.css包含assets/stylesheets目录中的所有内容,并导致令人不快的CSS混乱.我目前的解决方法是一种蛮力方法,我单独指定所有内容:

在application.css中:

*= require_self
*= require home.css
...
*= require blueprint/screen.css
Run Code Online (Sandbox Code Playgroud)

在我的样式表部分(haml):

<!--[if lt IE 9]
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
![endif]-->
= stylesheet_link_tag "application"
= stylesheet_link_tag 'blueprint/print', media: 'print'
<!--[if lt IE8]]
= stylesheet_link_tag 'blueprint/ie'
![endif]-->
= javascript_include_tag "application"
Run Code Online (Sandbox Code Playgroud)

这可行,但它不是特别漂亮.我已经做了几个小时的搜索甚至到目前为止,但我希望有一些更容易的方法,我刚刚错过了.如果我甚至可以有选择地渲染某些目录(不包括子目录),那么整个过程就会变得不那么严格.

谢谢!

css ruby-on-rails-3.1 sprockets asset-pipeline

166
推荐指数
2
解决办法
4万
查看次数

Rails 3.2,FATAL:用户的对等身份验证失败(PG ::错误)

我在Ubuntu 11.10和RubyMine上运行我的开发

这是我对database.yml的开发设置:RubyMine为我创建的

development:
  adapter: postgresql
  encoding: unicode
  database: mydb_development
  pool: 5
  username: myuser
  password:
Run Code Online (Sandbox Code Playgroud)

当我尝试运行应用程序时,我在下面收到此错误,似乎我还没有创建"项目"用户,但是,我如何创建用户并在postgres中为其授予数据库?如果这是问题,那么,在Ubuntu中为此任务使用的推荐工具是什么?如果这不是问题,那么,请指教.

Exiting
/home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `initialize': FATAL:  Peer authentication failed for user "project" (PG::Error)
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `new'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `connect'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:303:in `new_connection'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:313:in `checkout_new_connection'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:237:in `block (2 levels) in checkout'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:232:in `loop'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:232:in `block in checkout'
    from /home/sam/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:229:in `checkout'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:398:in `retrieve_connection'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:168:in `retrieve_connection'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:142:in …
Run Code Online (Sandbox Code Playgroud)

postgresql ruby-on-rails-3 ruby-on-rails-3.1 ubuntu-11.10

137
推荐指数
6
解决办法
10万
查看次数

Rails 3.1:引擎与可安装应用程序

有人可以帮我理解Rails引擎和可安装应用程序之间的差异吗?在Rails 3.1中,您可以使用"rails new plugin _ __ "命令创建任一个.

rails plugin new forum --full        # Engine
rails plugin new forum --mountable   # Mountable App
Run Code Online (Sandbox Code Playgroud)

你什么时候想要使用一个?我知道你可以将Engine打包成一个宝石.可安装应用程序的情况不是这样吗?还有什么其他差异?

ruby-on-rails-plugins rails-engines ruby-on-rails-3 ruby-on-rails-3.1

119
推荐指数
4
解决办法
3万
查看次数

查找Ruby on Rails中两个日期之间的月数

我有两个Ruby on Rails DateTime对象.如何查找它们之间的月数?(请记住,他们可能属于不同年份)

ruby ruby-on-rails date ruby-on-rails-3.1

91
推荐指数
5
解决办法
4万
查看次数

Ruby on Rails:如何使用rake db:migrate恢复迁移?

安装设备后,我得到了这个.

class DeviseCreateUsers < ActiveRecord::Migration
  def self.up
    create_table(:users) do |t|
      t.database_authenticatable :null => false
      t.recoverable
      t.rememberable
      t.trackable

      # t.encryptable
      # t.confirmable
      # t.lockable :lock_strategy => :failed_attempts, :unlock_strategy => :both
      # t.token_authenticatable


      t.timestamps
    end

    add_index :users, :email,                :unique => true
    add_index :users, :reset_password_token, :unique => true
    # add_index :users, :confirmation_token,   :unique => true
    # add_index :users, :unlock_token,         :unique => true
    # add_index :users, :authentication_token, :unique => true
  end

  def self.down
    drop_table :users
  end
end
Run Code Online (Sandbox Code Playgroud)

现在,如果我执行rake db:migrate,将创建users表.

如何恢复此迁移,即如何再次使用rake删除users表?

migration rake ruby-on-rails database-migration ruby-on-rails-3.1

90
推荐指数
7
解决办法
8万
查看次数

在rails中将列类型更改为更长的字符串

在第一次迁移时,我在列content上声明为字符串Activerecord根据annotate gem将其设置为字符串(255).

在我将应用程序推送到使用postgres的heroku后,如果我在内容中输入一个长度超过255的字符串,我会得到错误

PGError: ERROR: value too long for type character varying(255)
Run Code Online (Sandbox Code Playgroud)

问题是我需要内容包含一个非常长的字符串(自由文本,可能是数千个字符)

  1. 什么变量(字符串不适合这个)会接受?
  2. 如何创建迁移以替换该列的类型

谢谢

string postgresql ruby-on-rails ruby-on-rails-3.1 rails-activerecord

88
推荐指数
2
解决办法
5万
查看次数