标签: ruby-on-rails-2

为Rails 2.3和Rspec设置Capybara

我在使用Rspec 1.3的rails 2.3.8应用程序中设置capybara(0.4.1.2)时遇到一些麻烦.从安装capybara说明中,我插入了以下行:

require 'capybara/rspec' 
Run Code Online (Sandbox Code Playgroud)

然而,这给了我一个遗漏的常数错误.好像它正在寻找一个没有加载的类'RSpec'(我猜这是一个RSpec 2/Rails 3的东西).

那么如何让Rspec识别出rails 2.3下的水豚呢?我应该使用早期版本的capy吗?

PS.这是回溯的片段:

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|443| in `load_missing_constant': uninitialized constant RSpec (NameError)

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|80| in `const_missing_not_from_s3_library'

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb|206| in `const_missing'

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|92| in `const_missing'

||  from /Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/capybara-0.4.1.2/lib/capybara/rspec.rb:4


/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/rails-2.3.5/lib/rails/gem_dependency.rb|119| Warning: Gem::Dependency#version_requirements is deprecated and will be removed on or after August 2010.  Use #requirement

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|443| in `load_missing_constant': uninitialized constant RSpec (NameError)

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|80| in `const_missing_not_from_s3_library'

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb|206| in `const_missing'

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|92| in `const_missing'

|   from /Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/capybara-0.4.1.2/lib/capybara/rspec.rb:4

/Users/rafe/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb|31| in `gem_original_require'

/Users/rafe/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb|31| in `require'

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|158| in `require'

||  from /Users/rafe/cmi/lci/branches/forums/spec/spec_helper.rb:12
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails capybara ruby-on-rails-2

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

为名为":id"的数据库设置主键

我正在使用:rails 2.3.5 ruby​​ 1.8.7和Windows 7 Home Basic

我得到了一个数据库,我将它连接到rails,没有任何问题从读取和从中获取数据.现在我想要做的是添加一些功能(添加,编辑和删除),但是当我尝试通过执行以下代码将主键设置为表的主键(ProductCode)时:

class Product < ActiveRecord::Base
self.primary_key :ProductCode
end
Run Code Online (Sandbox Code Playgroud)

我做了一个时遇到这个错误@products = Product.find(:all, :limit => 10):

PosController中的ArgumentError #index错误的参数个数(1表示0)

我怎么解决这个问题?

这是我的控制器代码:

    class PosController < ApplicationController

    def index
        @cards = Card.find(:all)
        @products = Product.find(:all, :limit => 10)
    end

    def new
        @pro = Product.new
    end

    def edit
    @pro = Product.find(params[:id])
    end

    def update
    @pro = Product.find(params[:id])
    if session[:user_id]
                @log = "Welcome Administrator!"
                @logout="logout"
            else
                @log = "Admin Log in"
                @logout=""
            end

    respond_to do |format|
      if @pro.update_attributes(params[:product]) …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-2

4
推荐指数
1
解决办法
4581
查看次数

使用nusionx使用phusion passenger 3.0.17运行多个rails网站

我搜索谷歌使用phusion passenger 3.0.17与nginx部署多个rails网站,但我没有得到相关结果.我是如何通过运行passenger-install-nginx-module命令完成乘客nginx设置的.

问题1)我正在寻找适当的初学者教程,使用phusion passenger 3.0.17和nginx运行多个rails网站

问题2)我正在寻找启动,停止,重启(所有网站的整个乘客nginx服务器(即))以及(个人铁路网站)的命令

注意:不是在寻找乘客独立解决方案.我正在使用REE 1.8.7和rails 2.3.14

ruby-on-rails passenger virtualhost nginx ruby-on-rails-2

4
推荐指数
1
解决办法
3105
查看次数

如何将Rails应用程序从2.3.5升级到3.2.x?

我有Rails 2.3.5应用程序,我想升级到3.2.x. 如何升级到Rails 3.2.x?

谢谢

ruby ruby-on-rails ruby-on-rails-2 ruby-on-rails-3.2

4
推荐指数
1
解决办法
2943
查看次数

如何在ajax update div中进行计算?

我使用javascript将数量与价格相乘,但仅与第一行一起使用.

这是控制器:

def index
   @products= CustomerProduct.all
end 

def selected_product
   @selected_product = CustomerProduct.find(params[:id])
end
Run Code Online (Sandbox Code Playgroud)

这是索引视图:(显示所有产品和将更新的div)

<% @products.each do |product| %>
 <p> 
    <%= product.product_name %>
    <%= link_to_remote image_tag("image.png"),:url=>{:controller=>"customer_product",:action=>"selected_product",:id=>product.id } %>
 </p>
<% end %>

<div id="list_products">
   ## Here is the div that will update after select a product.
</div> 
Run Code Online (Sandbox Code Playgroud)

这是替换div的ajax更新:"selected_product.rjs"

 page.insert_html(:bottom,"list_products", :partial=>"customer_product/partials/add_product")
Run Code Online (Sandbox Code Playgroud)

以下是部分视图add_product.erb,显示所选信息

<script type="text/javascript">
jQuery("#quantity").live("change", function(){
    quantity = parseFloat(jQuery(this).val() );
    importe = parseInt(jQuery("#importe").val());

    total2 = quantity*importe;   
    jQuery("#total2").val(total2.toFixed(2));
    jQuery("#total2").autoNumericSet(total2.toFixed(2));

  });
jQuery('input#total2').autoNumeric();
</script>

<% @products.each do |product| %>
 <p>
    <%= text_field_tag 'code',@selected_product.product_code,:maxlength=>"10",:size=>"10" if …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery ruby-on-rails ruby-on-rails-2

4
推荐指数
1
解决办法
603
查看次数

无法推送到Heroku(Ruby 2.3.4)

我在尝试推送到heroku时不断收到此错误.几天前没有任何问题,我没有更改我的gemfile.

这是我推送到heroku时遇到的错误.它说"安装ruby-2.3.4时发生错误",但是我没有在我的gem ruby​​-2.3.4中指定,所以没有注释掉这条线,正如其他一些stackoverflow答案所建议的那样.

Stellas-MBP:curlav StellaHan$ git push heroku master
Counting objects: 9, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 1.19 KiB | 0 bytes/s, done.
Total 9 (delta 7), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rails
remote:        Command: 'set -o pipefail; curl -L --fail --retry 5 --retry-delay 1 --connect-timeout 3 --max-time 30 https://s3-external-1.amazonaws.com/heroku-buildpack-ruby/heroku-18/ruby-2.3.4.tgz -s -o …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails heroku ruby-on-rails-2

4
推荐指数
1
解决办法
1997
查看次数

(config.filter_parameters)等效于Rails 2.3.5

我需要一个与Rails 2.3.x等效的config.filter_parameters(Rails 3.xx)

module SampleApp
  class Application < Rails::Application
    # Configure sensitive parameters which will be filtered from the log file.
    config.filter_parameters += [:password]
  end
end
Run Code Online (Sandbox Code Playgroud)

这适用于Rails 3,但它需要Rails 2.3.x中的功能.

logging ruby-on-rails ruby-on-rails-3 ruby-on-rails-2

3
推荐指数
1
解决办法
916
查看次数

为什么'logger.debug false'没有打印任何东西?

我有一个布尔表达式的问题,当我做了一个logger.debug我得到了奇怪的结果,所以我将我的日志代码简化为以下内容,并且惊讶地看不到任何'false'被打印.

在我的控制器中记录代码:

logger.debug 'true'
logger.debug true
logger.debug
logger.debug 'false'
logger.debug false
logger.debug
logger.debug '1 == 1'
logger.debug 1 == 1
logger.debug
logger.debug '1 == 0'
logger.debug 1 == 0
Run Code Online (Sandbox Code Playgroud)

其中打印出以下内容

true
true

false


1 == 1
true

1 == 0
Run Code Online (Sandbox Code Playgroud)

......?我希望看到错误.当我在控制台中运行'1 == 0'或'put false'时,我得到了错误.我错过了什么吗?

任何想法为什么不打印'假'?

ruby版本:1.8.7-p352

rails版本:2.3.2

ruby ruby-on-rails ruby-1.8 ruby-on-rails-2

3
推荐指数
1
解决办法
397
查看次数

ActiveRecord中的表别名?

我有以下内容来查找帖子.

@posts = Post.find(:all, 
:select => "DISTINCT *",
:include => [:user, {:track => :artist}],
:conditions => ["user_id IN (?) AND NOT track_id = ?", users, @track.id],
:group => "track_id", 
:order => 'id desc', 
:limit => '5')
Run Code Online (Sandbox Code Playgroud)

我想添加子选择

(SELECT COUNT(*) FROM posts P2 
    WHERE P2.user_id = P1.user_id AND P2.id > P1.id AND P2.track_id <> 34)
 <= 1
Run Code Online (Sandbox Code Playgroud)

在我的条款条款中,限制每个用户的帖子数量.

如何将别名P1设置为"初始"帖子表?

使用rails 2.3.11

activerecord ruby-on-rails ruby-on-rails-2

3
推荐指数
1
解决办法
4491
查看次数

在 Rails 2.3 中从一个数据库读取并写入另一个数据库

Heroku 的数据库关注者非常酷。它们允许您创建一个单独的数据库,自动与您的主数据库保持同步。

我想使用这种技术来访问我的追随者数据库而不是我的主数据库以进行昂贵的读取操作(但显然我总是想写入我的主数据库)

当我在生产环境中时,是否可以访问两个数据库(写入的主数据库和读取的跟随数据库)?我理想的 API 应该是类似Post.use_db(:follower).find(1)Post.find(1, :use_db => :follower)?

database sharding ruby-on-rails ruby-on-rails-2

3
推荐指数
1
解决办法
1530
查看次数