小编Isr*_*ael的帖子

使用Carrierwave与模型之间的一对多关系

阶段

图像库应用程序.我有两个型号HandcraftPhotos. 一个手工艺品可能有很多照片,假设我有这样的模型:

  • Handcraft(name:string)
  • Photo(filename:string, description:string, ...)

_form.html.erb手工艺品中,有:

<%= form_for @handcraft, html: {multipart: true} do |f| %>
  # ... other model fields

  <div class="field">
    <%= f.label :photo %><br />
    <%= f.file_field :photo %>
  </div>

  # ... submit button
<% end %>
Run Code Online (Sandbox Code Playgroud)

handcraft.rb 看起来像这样:

class Handcraft < ActiveRecord::Base
  attr_accessible :photo
  has_many :photos
  mount_uploader :photo, PhotoUploader
  # ... 
end
Run Code Online (Sandbox Code Playgroud)

photo_uploader.rb:

class PhotoUploader < CarrierWave::Uploader::Base

  include CarrierWave::RMagick

  storage :file

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  version :thumb …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails has-many carrierwave ruby-on-rails-3.2

5
推荐指数
1
解决办法
3370
查看次数

似乎没有加载rails-i18n翻译

阶段

我有一个Rails 3.2应用程序,我添加到了我的Gemfile

gem 'rails-i18n'
Run Code Online (Sandbox Code Playgroud)

然后我执行bundle install

在视图中,我请求一条i18n消息,例如:

<%= l Time.now, format: :short %>
Run Code Online (Sandbox Code Playgroud)

在中config/initializers/locate.rb,我设置默认位置:

I18n.default_locale = :es
I18n.available_locales = :es
Run Code Online (Sandbox Code Playgroud)

问题:

I18n::MissingTranslationData in Events#index

translation missing: es.time.formats.short
Run Code Online (Sandbox Code Playgroud)

怎么了?是rails-i18n不是装的对不对?

测试:

让我们添加puts I18n.load_pathconfig/initializers/locate.rb文件:

I18n.default_locale =:es I18n.available_locales =:es

放置I18n.load_path

然后重新启动应用程序,asi可以看到列出了所有加载的路径:

/home/foo/.rvm/gems/1.9.3@myapp/gems/activesupport-3.2.13/lib/active_support/locale/en.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/activemodel-3.2.13/lib/active_model/locale/en.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/activerecord-3.2.13/lib/active_record/locale/en.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/actionpack-3.2.13/lib/action_view/locale/en.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/es-MX.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/es-PE.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/es-VE.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/zh-CN.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/af.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/bg.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/ar.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/ca.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/bn.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/az.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/bs.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/da.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/de.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/cs.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/cy.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/zh-TW.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/fa.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/el.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/en.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/eo.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/es.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/fi.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/et.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/eu.yml
/home/foo/.rvm/gems/1.9.3@myapp/gems/rails-i18n-0.7.3/rails/locale/fr.yml …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails-3.2 rails-i18n

5
推荐指数
1
解决办法
5920
查看次数

Rails 3在多个日期范围内查询

假设我们有一些日期范围,例如:

ranges = [
          [(12.months.ago)..(8.months.ago)],
          [(7.months.ago)..(6.months.ago)],
          [(5.months.ago)..(4.months.ago)],
          [(3.months.ago)..(2.months.ago)],
          [(1.month.ago)..(15.days.ago)]
         ]
Run Code Online (Sandbox Code Playgroud)

Post具有:created_at属性的模型.

我想找到created_at值在此范围内的帖子,因此我们的目标是创建一个类似的查询:

SELECT * FROM posts WHERE created_at 
    BETWEEN '2011-04-06' AND '2011-08-06' OR
    BETWEEN '2011-09-06' AND '2011-10-06' OR
    BETWEEN '2011-11-06' AND '2011-12-06' OR
    BETWEEN '2012-01-06' AND '2012-02-06' OR
    BETWEEN '2012-02-06' AND '2012-03-23';
Run Code Online (Sandbox Code Playgroud)

如果您只有一个这样的范围:

range = (12.months.ago)..(8.months.ago)
Run Code Online (Sandbox Code Playgroud)

我们可以做这个查询:

Post.where(:created_at => range)
Run Code Online (Sandbox Code Playgroud)

和查询应该是:

SELECT * FROM posts WHERE created_at 
    BETWEEN '2011-04-06' AND '2011-08-06';
Run Code Online (Sandbox Code Playgroud)

有没有办法使用这样的表示法来进行此查询Post.where(:created_at => range)

构建此查询的正确方法是什么?

谢谢

activerecord active-relation ruby-on-rails-3

4
推荐指数
2
解决办法
2694
查看次数

#Rails :: Application :: Configuration>的未定义方法`assets'

您好我升级的Rails 2个应用程序到Rails 3.当我要运行是这样的:rails c,rake -T,等它抛出这样的:

$ rails c
/usr/lib/ruby/gems/1.8/gems/railties-3.0.9/lib/rails/railtie/configuration.rb:77:in `method_missing': undefined method `assets' for #<Rails::Application::Configuration:0xb6569120> (NoMethodError)
    from /home/neoriddle/proyectos/interkids/config/application.rb:49
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.9/lib/rails/commands.rb:21:in `require'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.9/lib/rails/commands.rb:21
    from script/rails:6:in `require'
    from script/rails:6
Run Code Online (Sandbox Code Playgroud)

这是rails c和下一个日志正在运行rake -T:

$ rake -T --trace
rake aborted!
undefined method `assets' for #<Rails::Application::Configuration:0xb658aa64>
/usr/lib/ruby/gems/1.8/gems/railties-3.0.9/lib/rails/railtie/configuration.rb:77:in `method_missing'
/home/neoriddle/proyectos/interkids/config/application.rb:49
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
/home/neoriddle/proyectos/interkids/Rakefile:5
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:501:in `raw_load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:82:in `load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:81:in `load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:65:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/bin/rake:33
/usr/bin/rake:19:in `load'
/usr/bin/rake:19 …
Run Code Online (Sandbox Code Playgroud)

rake assets ruby-on-rails ruby-on-rails-3

3
推荐指数
1
解决办法
4301
查看次数

无法读取Maven-resources-plugin的工件描述符

阶段

我正在尝试在Eclipse(Spring Tool Suite,版本:)中编译Maven项目3.2.0.RELEASE

每个项目编译都将抛出以下内容:

Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.5
Plugin org.apache.maven.plugins:maven-resources-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.5
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

maven-2 maven spring-tool-suite

3
推荐指数
1
解决办法
4万
查看次数

将多维数组传递给C中的函数

我有这样的功能:

void myfunc(int** arr, int n) {
  int i, j;
  for(i=0; i<n; ++i) {
    for(j=0; j<n; ++j) {
      printf("%d,", *(arr + i*n + j) );  // Print numbers with commas
    }
    printf("\n");                        // Just breakline
  }
}
Run Code Online (Sandbox Code Playgroud)

在其他函数中我有一个二维数组,如下所示:

int main() {
  int seqs[8][8] = {
    {0, 32, 36, 52, 48, 16, 20, 4},
    {0, 16, 20, 52, 48, 32, 36, 4},
    {0, 32, 36, 44, 40, 8, 12, 4},
    {0, 8, 12, 44, 40, 32, 36, 4},
    {0, 32, 36, …
Run Code Online (Sandbox Code Playgroud)

c pointers function multidimensional-array pointer-to-pointer

2
推荐指数
1
解决办法
750
查看次数

如何在ruby中打印原始字符串?

我想打印字符串的转义原始版本。例如:给定这个字符串:

"a,
b,
c,
d"
Run Code Online (Sandbox Code Playgroud)

我想得到

"a,\nb,\nc,\nd".
Run Code Online (Sandbox Code Playgroud)

是否可以?

ruby string escaping

2
推荐指数
2
解决办法
6007
查看次数

如何在不使用Rails中的respond_to format.pdf的情况下呈现PDF?

如何在不渲染此文件的情况下向客户端发送文件(PDF,CSV等)?

例如,想象一下学生控制器(使用脚手架创建),我们有'新'形式和'创建'动作:

  def new
    @student = Student.new
    respond_to do |format|
      format.html # new.html.erb
    end
  end

  def create
    @student = Student.new(params[:student])
    respond_to do |format|
      if @student.save
        flash[:notice] = 'Student created'
        format.html { redirect_to(@student) }
      else
        format.html { render :action => "new" }
      end
    end
  end
Run Code Online (Sandbox Code Playgroud)

成功创建学生后,它将重定向到"显示"模板.那没问题!但我需要发送给客户端 - 例如PDF文件,然后呈现'show'动作.

此PDF文件类似于客户端的创建收据.

额外信息:现在使用Prawn制作PDF并通过以下代码发送给客户:

    respond_to do |format|
      format.pdf { render :layout => false }
    end
Run Code Online (Sandbox Code Playgroud)

总之,我需要获得填写的表格,创建学生,PDF发送到浏览器(作为创建收据)和渲染"秀"的行动,以显示创建学生.

非常感谢你.

pdf ruby-on-rails render prawn ruby-on-rails-3

0
推荐指数
1
解决办法
5707
查看次数