Questions tagged «ruby-on-rails-3.1»

Ruby on Rails 3.1.0版是Ruby on Rails的特定版本。它于2011年8月30日发布。使用此标记可解决与Ruby on Rails 3.1版中的开发有关的问题。

16
ExecJS并且找不到JavaScript运行时
我正在尝试使用Mongoid / Devise Rails 3.1模板(Mongoid和Devise),并且不断收到错误消息,指出ExecJS无法找到JavaScript运行时。当我没有安装任何东西的时候,还算公平,但是我尝试安装Node.js,Mustang和Ruby Racer,但是没有任何效果。 我找不到JavaScript运行时。有关可用运行时的列表,请参见sstephenson / ExecJS(GitHub ExecJS::RuntimeUnavailable)。 我需要做什么才能使它正常工作?

29
使用Rails 3.1,您将“特定于页面的” JavaScript代码放在哪里?
据我了解,您所有的JavaScript都合并为1个文件。默认情况下,Rails在添加//= require_tree .到application.js清单文件的底部时会执行此操作。 这听起来像是真正的救命稻草,但我有点担心页面特定的JavaScript代码。此代码是否在每个页面上执行?我想要的最后一件事是,当只在一页上需要所有对象时,将为每页实例化我的所有对象。 此外,代码是否也可能发生冲突? 或者,您是否script在页面底部放置了一个小的标签,该标签只是调用执行该页面javascript代码的方法? 那么您不再需要require.js吗? 谢谢 编辑:我感谢所有的答案...,我认为他们并没有真正解决问题。其中一些是关于样式的,似乎没有关系...而其他人只是提到javascript_include_tag...,我知道确实存在(显然...),但是看来Rails 3.1的前进方向是包装所有内容。您的JavaScript分成1个文件,而不是在每个页面的底部加载单个JavaScript。 我能想到的最好的解决方案是div用ids或classes 将某些功能包装在标签中。在JavaScript代码中,您只需检查页面上的id或class,如果是,则运行与其关联的JavaScript代码。这样,如果动态元素不在页面上,则JavaScript代码不会运行-即使它已包含在application.jsSprockets打包的海量文件中。 我上面的解决方案的好处是,如果搜索框包含在100个页面中的8个页面中,它将仅在这8个页面上运行。您也不必在网站的8个页面中包含相同的代码。实际上,您再也不必在您的网站上再包含任何手动脚本标记。 我认为这是对我问题的实际答案。


18
execJs:“找不到JavaScript运行时”,但是execjs和therubyracer位于Gemfile中
我收到此错误: 耙子流产了!找不到JavaScript运行时。参见https://github.com/sstephenson/execjs, 我已经花了更多时间搜索Google,然后我愿意承认。我相信这是execJs的错误。 从所有帖子来看,这是Rails 3.1的一个非常普遍的问题。现在,标准的宝石(例如coffee-script和sass)需要js运行时。 通过将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应该定位并使用。他们不会在我的系统上安装/安装。 我需要解决导致execJ找不到'therubyracer'的问题。这是Gemfile(并且安装包显示OK): 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' …

3
使用Rails 3.1资产管道有条件地使用某些CSS
我正在使用Rails 3.1.rc5构建我的第一个单独的Rails应用程序。我的问题是我想让我的网站有条件地呈现各种CSS文件。我正在使用Blueprint CSS,并且试图在screen.css大多数情况下渲染链轮/轨道,print.css仅在打印ie.css时以及从Internet Explorer访问该网站时。 不幸的是,清单中的默认*= require_tree命令application.css包括assets/stylesheets目录中的所有内容,并导致令人不愉快的CSS混乱。我当前的解决方法是一种蛮力方法,其中我分别指定了所有内容: 在application.css中: *= require_self *= require home.css ... *= require blueprint/screen.css 在我的样式表中,部分(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" 这有效,但不是特别漂亮。我已经花了几个小时进行搜索,才能达到目标,但是我希望有一种更简单的方法,而我只是错过了。如果我什至可以选择性地呈现某些目录(不包括子目录),那么整个过程将变得不那么严格。 谢谢!

8
Rails:致命-用户的对等身份验证失败(PG :: Error)
我正在Ubuntu 11.10和RubyMine上运行开发 这是我对database.yml的开发设置:RubyMine为我创建的 development: adapter: postgresql encoding: unicode database: mydb_development pool: 5 username: myuser password: 当我尝试运行该应用程序时,出现以下错误,似乎我还没有创建“项目”用户,但是,如何在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 …

5
Rails 3.1:引擎与可安装的应用程序
有人可以帮助我了解Rails Engine和可安装应用之间的区别吗?在Rails 3.1中,您可以使用“ rails new plugin _ __ ”命令创建一个。 rails plugin new forum --full # Engine rails plugin new forum --mountable # Mountable App 您什么时候要使用一个相对于另一个?我知道您可以将Engine打包为gem。可挂载应用程序不是这种情况吗?还有什么其他区别?


9
Ruby on Rails:如何使用rake db:migrate还原迁移?
安装devise MODEL User之后,我得到了这个。 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, …

2
将列类型更改为Rails中的更长字符串
在第一次迁移时,我content根据注释的gem 在列上声明了字符串Activerecord使其为string(255)。 将应用程序推送到使用postgres的heroku后,如果我在表单中输入的内容长度超过255,则出现错误 PGError: ERROR: value too long for type character varying(255) 问题是我需要内容包含一个可能非常长的字符串(自由文本,可能是数千个字符) pg会接受什么变量(字符串不适合此操作)? 如何创建迁移以替换该列的类型 谢谢

5
如何使用has_many关联在FactoryGirl中建立工厂
有人可以告诉我是否只是以错误的方式进行设置吗? 我有以下具有has_many.through关联的模型: class Listing < ActiveRecord::Base attr_accessible ... has_many :listing_features has_many :features, :through => :listing_features validates_presence_of ... ... end class Feature < ActiveRecord::Base attr_accessible ... validates_presence_of ... validates_uniqueness_of ... has_many :listing_features has_many :listings, :through => :listing_features end class ListingFeature < ActiveRecord::Base attr_accessible :feature_id, :listing_id belongs_to :feature belongs_to :listing end 我正在使用Rails …

5
ActiveRecord中的子查询
使用SQL,我可以轻松地执行这样的子查询 User.where(:id => Account.where(..).select(:user_id)) 这将产生: SELECT * FROM users WHERE id IN (SELECT user_id FROM accounts WHERE ..) 如何使用Rails的3 activerecord / arel / meta_where做到这一点? 我确实需要/想要真正的子查询,没有红宝石的解决方法(使用几个查询)。

10
rails-“警告:无法验证CSRF令牌的真实性”用于json devise请求
如何检索CSRF令牌以通过JSON请求传递? 我知道出于安全原因,Rails正在检查所有请求类型(包括JSON / XML)上的CSRF令牌。 我可以放入控制器skip_before_filter :verify_authenticity_token,但是会失去CRSF保护(不建议:-))。 这个类似的(仍然不被接受)的答案表明 使用检索令牌 <%= form_authenticity_token %> 问题是如何?我是否需要先调用任何页面以检索令牌,然后使用Devise进行真正的身份验证?还是我可以从服务器上获得一次信息然后再使用它(直到我在服务器本身上手动更改它)?

6
在Rails 3.1中添加新的资产路径
有谁知道如何在Rails 3.1中向资产管道添加另一个文件夹? 我想以app/assets/fonts同样的方式app/assets/images服务。 更新:2013年5月7日 只是为了向以后发现此问题的人们提供一些说明,以便在application.rb文件中显式添加资产路径: config.assets.paths << "#{Rails.root}/app/assets/fonts" 但是,由于上面的路径是在下面,因此app/assets您不必显式添加它,您只需要重新启动Rails应用程序即可,Sprockets可以选择它。 你必须明确地添加是外面的路径app/assets,lib/assets或者vendor/assets,只是记得,虽然链轮在存在时,你的应用程序中加载,在我的经验,它不拿起资产路径新的文件夹不夹拿起新文件重新启动。

6
Rails 3.1 Asset Pipeline:如何加载特定于控制器的脚本?
如果我在Rails 3.1中生成一个新的控制器,则带有控制器名称的javascript文件也会自动添加。首先,我认为只有在调用相关的控制器时,才会使用此javascript文件。 默认情况下//= require_tree .,application.js-file中有指令,其中包括树上的每个javascript文件。 如何仅加载控制器特定的脚本?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.