如何在不使用表单的情况下以编程方式处理附件?

我有一个具有images列的LineItem类。 它属于Order类。 保存line_item , images列是逗号分隔的图像URL列表。 我想要从url创建一个拼贴,并将其保存为line_item实例的附件。 不过,我不知道从哪里开始。 知道我的工作流程应该是什么样的吗? 我应该使用CarrierWave吗? 图像处理应该在哪里发生? 在LineItem模型或CarrierWave提供的上传器文件中?

为什么我不能从Rspec测试中访问Rails的URL助手?

最初我用Cucumber和Capybara写了我的测试,这很好。 然后我转而使用Rpsec和Capybara,这也很好。 然后我在尝试让资产管道工作时删除了我的gemlock文件,突然我的测试中的URL帮助程序停止工作。 示例错误: Failure/Error: visit report_areas_path(@report) NoMethodError: undefined method `visit’ for # # ./spec/features/area_spec.rb:12:in `block (3 levels) in ‘ 我想让URL助手再次工作,这样我的测试可以指导我完成资产管道的实施。 我怎样才能解决这个问题? 我的所有测试都在/ spec / features中。 相关软件如下…… /spec/spec_helper.rb: require ‘rubygems’ require ‘spork’ Spork.prefork do end Spork.each_run do # This code will be run each time you run your specs. end ENV[“RAILS_ENV”] ||= ‘test’ require File.expand_path(“../../config/environment”, […]

即使在force_encoding之后,Rails / Ruby也会在UTF-8中无效字节序列

我正在尝试在Rails中迭代一个远程nginx日志文件(压缩.gz文件),我在文件中的某个位置收到此错误: TTPArgumentError: invalid byte sequence in UTF-8 我尝试强制编码,虽然看起来编码已经是UTF8: logfile = logfile.force_encoding(“UTF-8”) 我正在使用的方法: def remote_update uri = “http://” + self.url + “/localhost.access.log.2.gz” source = open(uri) gz = Zlib::GzipReader.new(source) logfile = gz.read # prints UTF-8 print logfile.encoding.name logfile = logfile.force_encoding(“UTF-8”) # prints UTF-8 print logfile.encoding.name logfile.each_line do |line| print line[/\/someregex\/1\/(.*)\//,1] end end 真的试图理解为什么会发生这种情况(试图查看其他SO线程但没有成功)。 这有什么不对? 更新: 添加了exception的跟踪: HTTPArgumentError: […]

测试Ruby on Rails

有没有可以在线测试Ruby on Rails的地方? 主要测试从模型中获取数据。 寻找类似于http://jsfiddle.net/的东西。

如何在rails 3.1.3中安全地更新生产数据库模式?

我们需要不断更新rails 3.1.3 app的生产中的数据库模式。 使用以下rails命令创建了第一个db模式: $rake RAILS_ENV=production db:schema:load 问题是:我们是否仍然可以使用上述命令更新生产中的db模式,同时安全地保留所有当前数据? 非常感谢。

如何在rails中使用erb标记呈现html内容?

我正在编写简单的cms引擎,并且遇到动态内容呈现问题,例如我使用erb标记和帮助程序准备一些页面内容,我如何在视图中评估它们? 谢谢。

计算儿童的计数范围

我需要一个计算孩子的范围,并将其与另一个数字进行比较。 像这样的东西: Training_date.rb scope :not_full, ->{where(“subscriptions.count < candidate_limit")} 然后将该范围调用到training_date索引。 只有我得到一个未知的列错误。

sidekiq在此期间获得更多记忆? 我们怎么解决这个问题?

sidekiq运行很长时间,我们的16GB RAM接近满。 如果我们停止并重启,内存会下降。 我们的Rails应用程序版本是Rails 3.2.12和Ruby 1.9.3 我们如何解决这个问题?

Rails基于自定义REST方法生成的辅助路径失败

除了Rails默认定义的路由之外,还希望将自定义路由定义到某些资源。 为此,我的routes.rb文件的相关部分看起来像这样: resource :top, only: [:show] scope module: :top do resource :reso, only: [:show] end get ‘foo_reso’ => ‘top/reso#foo’ get ‘bar_reso’ => ‘top/reso#bar’ 如您所见,我只想要路由到ResoController的方法show , foo和bar 。 这有效,因为rake routes给出: reso GET /reso(.:format) top/reso#show foo_reso GET /foo_reso(.:format) top/reso#foo bar_reso GET /bar_reso(.:format) top/reso#bar 这样做:单击应用程序中的一个链接,将您带到路径foo_reso会导致调用ResoController#foo ,并随后显示相关视图。 但是,我认为路由定义只是稍微丑陋,而不是定义路由明确,希望Rails通过告诉它资源有两个额外的REST方法foo和bar来自动生成它们(同时仍然限制标准方法only:手段only:参数)。 我按照这个答案的建议,并将routes.rb更改为: resource :top, only: [:show] scope module: :top do resource :reso, […]

Ruby:`gem_original_require’:没有这样的文件要加载 – rails(LoadError)

我刚刚删除了ruby 1.9.1并安装了1.8.7,但是当我寻找rails时,我的bash仍然指向1.9.1。 emai@vpc-db:~$ rails –version bash: /usr/local/bin/rails: /usr/bin/ruby1.9.1: bad interpreter: No such file or directory emai@vpc-db:~$ ruby –version ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux] 有人可以帮忙吗? 如何让bash看看1.8.7?