我最近将应用程序升级到rails 3.2.2.
我正在使用Factory_girl
Factory.sequence:name do | n | "名字 - #{n}"结束
Factory.define:用户执行| u | u.first_name {Factory.next(:name)}
u.last_name {| u | 'last_'+ u.first_name}
u.password'secret'u.password_confirmation {| u | u.password} u.sequence(:email){| i | "user_#{i}@example.com"}结束
而这个简单的测试
指定{Factory.build(:user).should be_valid}
生成以下警告
弃用警告:您正在尝试创建属性
user_id'. Writing arbitrary attributes on a model is deprecated. Please just use
attr_writer`等(从块中调用(2级)...
我怎么能摆脱它?
我正在创建一个javascript库并且想要使用BDD,所以我试试mocha并且我无法使其工作.我希望在客户端上使用该库,所以我假设从可浏览的URL运行它是有意义的,在web连接的上下文中,而不仅仅是来自unc路径的沙箱.
这是虚拟起始点文件test/test.foobar.js
var assert = chai.assert;
var foobar = {
sayHello: function() {
return 'Hello World!';
}
};
describe('Foobar', function() {
describe('#sayHello()', function() {
it('should work with assert', function() {
assert.equal(foobar.sayHello(), 'Hello World!');
});
});
});
Run Code Online (Sandbox Code Playgroud)
这是触发测试的html页面,test.html
<html>
<head>
<meta charset="utf-8">
<title>Mocha Tests</title>
<link rel="stylesheet" href="testing/mocha.css" />
<script src="testing/jquery.js"></script>
<script src="testing/mocha.js"></script>
<script>mocha.setup('bdd')</script>
<script src="testing/chai.js"></script>
<script src="test/test.foobar.js"></script>
<script> $(function() { mocha.run(); }) </script>
</head>
<body>
<div id="mocha"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当我打开铬或野生动物园
file:///Users/me/dev/sandbox/test.html
Run Code Online (Sandbox Code Playgroud)
它按预期工作,测试通过没有错误
当我打开铬或野生动物园
http://localhost/sandbox/test.html
Run Code Online (Sandbox Code Playgroud)
我收到以下错误,测试失败
Error: global leak detected: script1339700707078
at …
Run Code Online (Sandbox Code Playgroud) 我有一个带有属性id和电子邮件的@clients集合我想呈现这个json格式
[
{"id":" 1","label":"johndoe@yahoo.com","value":"1"},{"id":" 2","label":"paulsmith@gmail.com.com","value":"2"}
]
Run Code Online (Sandbox Code Playgroud)
在clients_controller中我定义了以下方法
def search
@clients = Client.where(:user_id => current_user.id).select('id','email')
render :partial => "clients/search"
end
Run Code Online (Sandbox Code Playgroud)
这是视图_search.json.erb
[
<%= raw @client.map{|client| '{"id":"' +" #{client.id}" +'","label":"' + "#{client.email}" + '","value":"' +"#{client.id}" +'"}' }.join(",") %>
]
Run Code Online (Sandbox Code Playgroud)
这是有效的,但我发现它很难...是否有更优雅的方式在视图中生成自定义json格式?
我正在努力尝试实现一些最初对我来说简单的东西.在使用carrierwave的rails 3.0应用程序的上下文中.用户必须能够下载除.exe文件之外的任何类型的文档.在Carriewave有白名单
def extension_white_list
%w(jpg jpeg gif png)
end
Run Code Online (Sandbox Code Playgroud)
我知道有一个黑名单,在我的情况下它会更容易.无论如何,这不是主要关注点.
对于图像文件我在我的上传器类中设置了2个版本.
version :thumb do
process :resize_to_fit => [50, 50]
end
version :small do
process :resize_to_fit => [125, 125]
end
Run Code Online (Sandbox Code Playgroud)
我不得不承认我对这种语法有点困惑.什么样的ruby代码"版本"定义.我的意思是,它不是一种方法,所以在课堂上是什么?
我试图创建一个方法图像?
def image?
%w(jpg jpeg gif png).include?(filename.extension.to_s)
end
Run Code Online (Sandbox Code Playgroud)
然后从版本代码中调用它以防止在文件不是图像时创建那些版本
version :thumb do
if image?
process :resize_to_fit => [50, 50]
end
end
Run Code Online (Sandbox Code Playgroud)
但是这段代码会引发错误
undefined method `image?' for #<Class:0x000001017274f8>
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
谢谢.
技术背景:rails 4.2.2,active_model_serializers 0.10.0.rc2 给定一个购物车和一个产品列表,当我将产品添加到购物车时,我希望得到响应:
{
"data": {
"id": "575",
"type": "carts",
"attributes": {
"name": "cart 1"
},
"relationships": {
"cart_products": {
"data": [
{
"type": "cart_products",
"id": "32",
"attributes": {
"product_id": 456
}
}
]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,目前的回应是
{
"data": {
"id": "575",
"type": "carts",
"attributes": {
"name": "cart 1"
},
"relationships": {
"cart_products": {
"data": [
{
"type": "cart_products",
"id": "32",
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
} }
有没有办法渲染关系属性?
rails 3.0.9的上下文,使用resque 1.17.1和resque-scheduler 2.0.0.0d.试图按照https://github.com/bvandenbos/resque-scheduler/tree/v2.0.0.d上的文档,我创建了一个resque_scheduler.rake文件:
# Resque tasks
require 'resque/tasks'
require 'resque_scheduler/tasks'
namespace :resque do
task :setup do
require 'resque'
require 'resque_scheduler'
require 'resque/scheduler'
# you probably already have this somewhere
Resque.redis = 'localhost:6379'
# The schedule doesn't need to be stored in a YAML, it just needs to
# be a hash. YAML is usually the easiest.
#Resque.schedule = YAML.load_file('your_resque_schedule.yml')
# If your schedule already has +queue+ set for each job, you don't
# need to require your …
Run Code Online (Sandbox Code Playgroud) carrierwave ×1
factory-bot ×1
file-type ×1
formatting ×1
javascript ×1
json ×1
json-api ×1
mocha.js ×1
resque ×1
rspec ×1
testing ×1
view ×1