小编Aus*_*tin的帖子

在rails 3中查找会话ID

如何在rails 3中获取当前会话ID?

我试过以下没有运气:

session[:session_id]
session['session_id']
session[:id]
session['id']
session.id
session.session_id
Run Code Online (Sandbox Code Playgroud)

ruby session ruby-on-rails

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

带有(大多数)所有元素的HTML页面,用于样式化

有没有人知道或者知道包含所有元素的HTML页面(有嘴唇文本或其他什么)?我可以做一个,但我想有人必须已经这样做了.

在开始一个项目时,我喜欢为链接,列表,表格等设置一些基本样式.包含所有元素的HTML页面将帮助我加快这个过程.

除非已经完成,否则我很乐意创建并分享它.谢谢!

html css

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

Spork不会在lib中重新加载文件

我正在使用spork运行rspec,我无法在lib中获取文件以在连续的rspec运行时重新加载.我试过在'Spork.each_run'中要求提供文件

我没有收到任何回复,所以我会尝试进一步解释.我的Rails应用程序中有以下文件:

  • LIB/car.rb
  • 规格/ lib目录/ car_spec.rb

要运行测试,首先我开始spork然后运行'rspec spec/lib/car_spec.rb'

RSpec没有看到我对我的Car类的更改,除非我重新启动spork.

有帮助吗?

我上线了:

  • rails 3.1.0.rc6
  • rspec 2.6.0
  • spork 0.9.0.rc9

ruby rspec ruby-on-rails spork

8
推荐指数
1
解决办法
1304
查看次数

测试记忆

我有一个叫做昂贵的方法calculate_total.我需要一个调用的方法total来返回结果calculate_total.后续调用total应该返回之前的结果calculate_total.

我想以测试驱动的方式做到这一点.这是我的测试(我正在使用RSpec):

describe Item do
  describe "total" do
    before do
      @item = Item.new
      @item.stub!(:calculate_total => 123)
    end

    it "returns the calculated total" do
      @item.total.should == 123
    end

    it "subsequent calls return the original result" do
      previous_total = @item.total
      @item.total.should equal(previous_total)
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这不是一个好的测试,因为以下方法使测试通过,但我希望第二个测试失败:

def total
  calculate_total
end
Run Code Online (Sandbox Code Playgroud)

原因是calculate_total返回一个Fixnum所以ruby没有看到结果为2个不同的对象.我期待第二次测试失败,所以我可以执行以下操作以使其通过:

def total
  @total ||= calculate_total
end
Run Code Online (Sandbox Code Playgroud)

有人知道更好的测试方法吗?

我不认为这是测试它的最好/最正确的方法,但我已经确定了这个:https://gist.github.com/1207270

ruby testing unit-testing rspec

7
推荐指数
1
解决办法
1043
查看次数

Ruby gem生成正则表达式的例子

不久前,我遇到了一个红宝石宝石,给定正则表达式,会生成示例字符串.

例如,给出正则表达式:

/[a-z]{5}[0-9]{4}/
Run Code Online (Sandbox Code Playgroud)

它可以生成字符串:

"hkdbv4578"
Run Code Online (Sandbox Code Playgroud)

有谁记得这个宝石的名字?

ruby gem rubygems ruby-on-rails

5
推荐指数
1
解决办法
2000
查看次数

after_commit实际上运行了吗?

我在rails 3.0.8上并尝试使用after_commit回调.

它的定义如下:https://github.com/rails/rails/blob/v3.0.8/activerecord/lib/active_record/transactions.rb#L210

它被称为回调之一:https://github.com/rails/rails/blob/v3.0.8/activerecord/lib/active_record/callbacks.rb#L22

考虑一下:

class Car < ActiveRecord::Base
  after_commit do
    # this doesn't execute
  end

  after_commit :please_run
  def please_run
    # nor does this
  end
end
Run Code Online (Sandbox Code Playgroud)

任何想法为什么它不起作用?我假设我正确使用它.

ruby activerecord ruby-on-rails

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

设计 - 在验证时设置范围

我正在使用设计进行身份验证.如何设置登录范围?例如,假设我只想验证范围的用户:

User.where(:active => true)
Run Code Online (Sandbox Code Playgroud)

我清楚了吗?这很简单,但如果需要我可以详细说明.

(我意识到有一个可锁定的模块,但我的实际范围不适用于活跃用户,它更像是current_site.users,其中current_site基于域)

ruby authentication ruby-on-rails devise

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

安装RVM时出错

我正在尝试在redhat 5.5上安装rvm,我收到此错误:

[mc@owl-ci ~]$ bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   979  100   979    0     0   8168      0 --:--:-- --:--:-- --:--:--  318k
Cloning into rvm...
remote: Counting objects: 18463, done.
remote: Compressing objects: 100% (4985/4985), done.
remote: Total 18463 (delta 12517), reused 17903 (delta 12002)
Receiving objects: 100% (18463/18463), 3.19 MiB, done.
Resolving deltas: 100% (12517/12517), done.
mkdir: cannot create directory `/archives': …
Run Code Online (Sandbox Code Playgroud)

ruby linux redhat rvm

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