我有以下Rspec测试:
describe Productlimit do
before(:each) do
@productlimit = Factory.create(:productlimit, :user => Factory.create(:user))
end
subject { @productlimit }
...
it { should validate_uniqueness_of(:price_cents).scoped_to(:direction_down, :currency, :market_id, :user_id) }
...
end
Run Code Online (Sandbox Code Playgroud)
但我得到以下令人困惑的错误:
1) Productlimit
Failure/Error: it { should validate_uniqueness_of(:price_cents).scoped_to(:direction_down, :currency, :market_id, :user_id) }
Expected errors to include "has already been taken" when price_cents is set to 9530, got errors: ["direction_down has already been taken (false)"]
Run Code Online (Sandbox Code Playgroud)
你能帮助我吗?我不明白为什么这不起作用,因为错误信息似乎是正确的?
编辑:
在其他情况下也会发生这种情况:
# product_spec.rb
...
it { should validate_numericality_of(:price).with_message("price_cents must be greater than 0 (0)") }
# …Run Code Online (Sandbox Code Playgroud) 我正在使用capybara在我的rails 3 app上进行集成测试.
当我添加:js => true到一个场景我的测试使用selenium但是当我更改为使用webkit驱动程序为js我会得到每个错误,如下所示:
Capybara :: Driver :: Webkit :: WebkitInvalidResponseError:无法加载URL:http://www.example.dev:7171/user_sessions
我的添加是一个多域应用程序所以在我的spec_helper我设置端口:Capybara.server_port = 7171
在后台块中,我将app_host设置为:Capybara.app_host =" http://# {subdomain} .example.dev:7171"
如果我然后将其添加到我的spec_helper rspec.configure块我然后得到上面的错误:
config.before(:each) do
DatabaseCleaner.start
Capybara.run_server = false
Capybara.javascript_driver = :webkit
Capybara.default_selector = :css
Capybara.server_port = 7171
end
Run Code Online (Sandbox Code Playgroud)
有人能帮忙吗?我也使用spork进行自动测试.
我使用Ruby on Rails并希望使用vim作为首选编辑器.但是,我找不到任何地方一步一步的简单设置,白痴证明,说明如何正确设置它的解释步骤.
我希望正确设置vim,使用漂亮的插件链接vim for rails,nerdtree和类似的东西.请帮帮我,我将非常感激.
到目前为止,我已经安装了RoR,vim和git.
我想通过Ajax对Kaminari应用多个分页现在这里是我的控制器代码
def user_note
@user = current_user
@notes = Bookmark.where('user_id = ? && note is not NULL',current_user.id).order('created_at DESC').page(params[:page_1]).per(4)
@bookmarks = Bookmark.where('user_id = ? && note is NULL',current_user.id).order('created_at DESC').page(params[:page_2]).per(4)
respond_to do |format|
format.html
format.xml{ render :xml => @user}
end end
Run Code Online (Sandbox Code Playgroud)
现在对于视图我有两个部分来渲染这个数组
<div id="bookmarks">
<%= render :partial =>"users/bookmark",:locals => { :bookmark => @bookmarks} %>
</div>
<%= paginate @bookmarks,:remote => true, :param_name => 'page' %>
Run Code Online (Sandbox Code Playgroud)
内部的部分是
<% bookmark.each do |bookmar| %>
<%= render :partial => 'show_bookmark.html.erb' , :locals => { :bookma => bookmar} %> …Run Code Online (Sandbox Code Playgroud) 尝试运行bundle install或bundle update时,bundler将永久挂起,而不是完成其功能.它完成的唯一时间是指定要更新的gem.
例如:
bundle update
Run Code Online (Sandbox Code Playgroud)
将永远挂起,除非我像这样使用它:
bundle update activerecord
Run Code Online (Sandbox Code Playgroud)
然后它将正常完成.
任何援助将不胜感激.
我使用Twitter Bootstrap(不重要但它是第三方 CSS文件).因为它是第三方CSS"库",它应该进入/vendor/assets/stylesheets.到现在为止还挺好.
现在,我想在生产中使用Rails 3.1(.1)资产管道连接一个application.css中的所有CSS,这就是我遇到的问题.
当我运行rake assets:precompile它时,就像宣传的一样.Rake任务在public/assets带有摘要的所有文件夹中创建一些application.css文件.问题是这个文件只包含我的CSS文件中的CSS,/app/assets/stylesheets并完全忽略了我的供应商资产文件夹中的CSS .
有谁知道我在这里想念的内容以及如何告诉Rails将供应商样式表与应用程序一起连接起来?此外,仅包括:
<%= stylesheet_link_tag "application" %>
Run Code Online (Sandbox Code Playgroud)
在视图中(因为我希望最终所有内容都在一个文件中)或者我应该包含每个CSS文件?
我正在调用传递一些键/值对的第三方API(用PHP编写).
此代码有效:
h = Hash.new
h['first_name'] = "Firstname"
h['last_name'] = "Lastname"
APICall([h]) # Record gets created
Run Code Online (Sandbox Code Playgroud)
这不是:
h = {'first_name' => "Firstname", 'last_name' => "Lastname"}
APICall([h]) # Record does not get created
Run Code Online (Sandbox Code Playgroud)
当我在两个实例中将Hash转储到控制台时,我获得了相同的数据结构.那么为什么第一种方式起作用但第二种方式不起作用呢?
编辑:不确定这是否重要,但我使用的是Ruby 1.8.7p72/Linux.另外一个键/值对是Base64编码的图像串.
我的机器上有导轨版本3.2.1.安装的其他版本是3.0,3.0.3.每当我跑步
rails new PROJECT_NAME
Run Code Online (Sandbox Code Playgroud)
命令,该项目在版本3.2.1中创建.我想在3.0.3版本中创建项目.
我该怎么办?
我想开始使用我的第一个Ruby on Rails应用程序.
它会拉出一个图像,一些关于图像的文本显示两者,并有一个小框来写一些关于图像的文本,然后一旦提交就会写入数据库.
它不太可能有超过5个并发用户,因为它是一个个人项目.
在轨道上运行ruby所需的最低VPS规格是多少?是否有可能在64mb(128爆炸)内存或我可以更低?