我正在编写使用Object.const_set创建新类的Ruby代码,它非常适合创建新类并实例化它们的实例.但我希望这些新类继承自我已经硬编码的类.我找不到这样做的方法.这是我的代码:
def create_model_class(klass_name, klass_vars)
klass = Object.const_set(klass_name, Class.new)
klass.class_eval do
define_method(:initialize)
klass_vars.each_with_index do |name, i|
instance_variable_set("@"+name[i], name[i])
end
end
end
end
Run Code Online (Sandbox Code Playgroud) 我修改了Visual Idiot的Unslider(http://unslider.com/)以适应基于图像比例的多宽度幻灯片,但是在这个过程中,我遇到了一个错误导致幻灯片加载为微小的缩略图(我认为在图像没有一直加载的情况下).这是问题#1.所以我试图等到所有图像都加载完毕.但我还没有找到成功做到这一点的方法.这是问题#2.
这是我在Unslider init()函数中添加的代码:
_.init = function(el, o) {
// Check whether we're passing any options in to Unslider
_.o = $.extend(_.o, o);
_.el = el;
_.ul = el.find(_.o.items);
_.max = [el.outerWidth() | 0, el.outerHeight() | 0];
_.max = [100, 100];
_.li = _.ul.find(_.o.item).each(function(index) {
var me = $(this);
var an_image = me.find('img');
an_image.load(function() {
width = an_image[0].naturalWidth,
height = an_image[0].naturalHeight;
setSlideHeight(an_image, width, height, 300, 20);
if ( an_image.parent().parent().is(":last-child") ) {
_.el.css("width", 900);
}
})
// Set the …Run Code Online (Sandbox Code Playgroud) 我试图在某些条件下测试错误是否正确.在此规范中,引发了错误,但测试仍然失败.我究竟做错了什么?
require 'spec_helper'
describe USBTeensyRenderer do
context 'when the correct USB port name is not present' do
it 'raises an error on instantiation' do
expect(renderer = USBTeensyRenderer.new).to raise_error(USBInitError)
end
end
end
Run Code Online (Sandbox Code Playgroud)
并且'bundle exec rspec'的终端输出:
Failures:
1) USBTeensyRenderer when the correct USB port name is not present raises an error on instantiation
Failure/Error: expect(renderer = USBTeensyRenderer.new).to raise_error(USBInitError)
USBInitError:
USB output couldn't be initialized
# ./lib/ivan/view/renderers/usb_teensy_renderer.rb:9:in `rescue in initialize'
# ./lib/ivan/view/renderers/usb_teensy_renderer.rb:6:in `initialize'
# ./spec/models/usb_teensy_renderer_spec.rb:10:in `new'
# ./spec/models/usb_teensy_renderer_spec.rb:10:in `block (3 levels) in <top …Run Code Online (Sandbox Code Playgroud) 我已经在Mediatemple的Ubuntu linux box(ve)服务器上使用Apache在Passenger上运行Rails.当我尝试加载任何页面时,我的应用程序给了我500错误(Rails错误,而不是Apache错误):http://www.mvngmtns.com
我在config/environments/production.rb中看到一篇关于更改此行的文章:
config.assets.compile = true
Run Code Online (Sandbox Code Playgroud)
但这并没有解决我的问题.有人可以帮忙吗?
我的development.log:
Started GET "/" for 72.225.170.239 at 2012-06-29 15:28:43 -0700
Processing by HomeController#index as HTML
Rendered application/_logo.html.erb (0.6ms)
Rendered application/_navbar.html.erb (1.4ms)
Rendered home/index.html.erb within layouts/application (2.6ms)
Completed 500 Internal Server Error in 6ms
ActionView::Template::Error (application.css isn't precompiled):
2: <html>
3: <head>
4: <title>Moving Mountains<%= get_title %></title>
5: <%= stylesheet_link_tag "application", :media => "all" %>
6: <%= javascript_include_tag "application" %>
7: <%= csrf_meta_tags %>
8:
app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb___2841110860658336572_129641540'
app/controllers/home_controller.rb:6:in `index'
Run Code Online (Sandbox Code Playgroud)
按要求,跑了 …
我想编写一个应用程序来搜索谷歌的 Ngram 数据,以返回过去比现在更流行的单词和短语,在任意的年份范围内,按任意百分比,比现在更流行。
例如:https : //books.google.com/ngrams/graph?content=cowabunga&year_start=1950&year_end=2000&corpus=15&smoothing=3
理想情况下,我希望能够在不预先指定的情况下找到这些单词和短语。任何人都可以帮助我想出一种使用下载的 Ngrams 数据副本来做到这一点的方法吗?
我将Ryan Bates在Carrierwave上的RailsCast扩展到多个文件上传器,每个文件上传器都应该上传到自己的S3存储桶.我已经有一个工作了.我的配置如下所示:
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => '(my access key)',
:aws_secret_access_key => '(my secret key)'
}
config.fog_directory = 'my-bucket'
config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}
end
Run Code Online (Sandbox Code Playgroud)
我的文件上传器类看起来像这样:
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
process :resize_to_fit => [1024, 1024]
process :quality => 70
storage :fog
end
Run Code Online (Sandbox Code Playgroud)
在我的班上,我打电话
mount_uploader :image, ImageUploader
Run Code Online (Sandbox Code Playgroud)
是否可以在每个上传的基础上更改config.fog_directory?在类定义里面?别的地方?谢谢你的帮助.
ruby ×2
amazon-s3 ×1
apache ×1
carrierwave ×1
css ×1
google-api ×1
jquery ×1
n-gram ×1
passenger ×1
precompiled ×1
rspec ×1