我用:
gem 'rails', '3.2.11'
gem 'rspec-rails', '2.13.2'
gem 'webrat', '0.7.3'
gem 'factory_girl_rails', '4.1.0'
gem 'spork', '~> 0.9.0.rc'
Run Code Online (Sandbox Code Playgroud)
我想测试我的HP,我总是有一个指向某个用户的链接,因此HP的页面控制器包含:
@user = User.find(7)
Run Code Online (Sandbox Code Playgroud)
惠普的视图包含:
link_to 'See user', @user
Run Code Online (Sandbox Code Playgroud)
问题是所有测试都失败,因为测试数据库没有id为7的用户.我试过:
FactoryGirl.define do
factory :user do
name "Testuser"
id "7"
end
end
Run Code Online (Sandbox Code Playgroud)
......但这不起作用.始终存在错误:
规格如下:
describe "GET 'home'" do
before(:each) do
FactoryGirl.create(:user)
end
it "should be successful" do
get 'home'
response.should be_success
end
end
Run Code Online (Sandbox Code Playgroud)
失败/错误:获取'home'ActiveRecord :: RecordNotFound:找不到id = 7的用户
惠普在现实中工作得很好,只是测试失败了.我怎样才能保证这个测试不会失败?
我升级到rails 3.1并且我的测试现在遇到了一些问题.
测试前我收到以下警告:
弃用警告:不推荐使用ActiveRecord :: Associations :: AssociationCollection!请改用ActiveRecord :: Associations :: CollectionProxy.(从/home/user/rails_projects/project/config/environment.rb:5调用)
如何使用CollectionProxy而不是AssociationCollection?
这是我的Gemfile:
source 'http://rubygems.org'
gem 'rails', '3.1.0'
gem 'jquery-rails'
gem "therubyracer", "~> 0.9.4"
gem 'carrierwave', '0.5.6'
gem 'haml', '~>3.1.2'
gem 'mysql2', '0.3.7'
gem 'rmagick', '2.13.1'
gem 'sitemap_generator', '2.0.1'
gem 'whenever', '0.6.8', :require => false
gem 'will_paginate', '3.0.pre2'
group :assets do
gem 'sass-rails', " ~> 3.1.0"
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
group :development do
gem 'rspec-rails', '2.6.1'
gem 'annotate-models', '1.0.4'
gem 'faker', '0.9.5', :require => false
gem …
Run Code Online (Sandbox Code Playgroud) 我想将我的生产数据库复制到我的开发环境.我将website_production复制到my developpemnt环境的mysql中,所以使用SHOW DATABASES; 我现在有
website_development website_production
作为数据库.如何使用mysql命令将所有表格及其内容从website_production复制并覆盖到website_developemnt?
我正在使用carrierwave和rmagick来处理我的图片上传.我现在在image_uploader.eb中添加了一个新版本(smallthumb):
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :file
def store_dir
"uploads/images"
end
version :thumb do
process :resize_to_fill => [250, 250]
end
version :smallthumb do
process :resize_to_fill => [70, 70]
end
def extension_white_list
%w(jpg jpeg gif png)
end
end
Run Code Online (Sandbox Code Playgroud)
我有一个名为"image"的模型,其中安装了图像上传器:
class Image < ActiveRecord::Base
attr_accessible :date, :description, :name, :size, :image, :article_ids
has_and_belongs_to_many :articles
mount_uploader :image, ImageUploader
end
Run Code Online (Sandbox Code Playgroud)
我已经读过我需要调用recreate_versions !,但是我不明白我需要在哪里调用这个操作以及如何调用.我在公共/上传/图像的实时服务器上有我的图像.如何重新创建所有这些图像的版本(在我的开发机器和实时服务器上),以便我也可以使用图像的小型版本?
我有一个使用谷歌地图API v3的公司的多个标记的地图.我需要从infowindow链接到我的应用程序的公司show视图,所以如果我点击标记,infowindow会打开一些基本信息和链接来查看公司的详细信息.代码是这样的:
class CitiesController < ApplicationController
...
def businessmap
@city = City.find(params[:id])
@mapcenter = @city.geocode
@businesses = @city.businesses
respond_to do |format|
format.html
format.json { render :json => @businesses.to_json(:only => [:id, :business_name, :phone, :latitude, :longitude]) }
end
end
end
Run Code Online (Sandbox Code Playgroud)
mapview本身就在这里:
%script{:type => "text/javascript", :charset => "utf-8", :src => "http://maps.googleapis.com/maps/api/js?v=3.6&sensor=false®ion=IN"}
%script{:type => "text/javascript"}
function initialize() {
var cityLatlng = new google.maps.LatLng(
= @mapcenter[0]
,
= @mapcenter[1]
);
var options = {
zoom: 13,
center: cityLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new …
Run Code Online (Sandbox Code Playgroud) 我在用:
gem 'rails', '4.0.0'
gem 'globalize', '~> 4.0.2'
Run Code Online (Sandbox Code Playgroud)
在我的Image.rb模型中,我有两列我想翻译(英语和德语):
translates :name, :description
Run Code Online (Sandbox Code Playgroud)
在application.rb我设置:
config.i18n.fallbacks = true
Run Code Online (Sandbox Code Playgroud)
Everthing工作正常.我有一个英文描述,如果我将语言改为德语,它会显示德语描述以防有一个,否则显示英文文本.Proplem仍然是大多数图像描述没有德语翻译,所以我想在德国网站上添加一条短信,说目前没有德语翻译,但我们会显示英文文本,直到有德语翻译可用.
我打算在我的观点中添加类似的东西
if fallback.true?
Message: This text has not been translated yet and is shown in English
Run Code Online (Sandbox Code Playgroud)
有没有办法检查Globalize是否使用了回退选项并在这种情况下显示消息?
rspec2 ×2
carrierwave ×1
factory-bot ×1
globalize ×1
javascript ×1
mysql ×1
mysqldump ×1
rmagick ×1
rspec ×1
ruby ×1