我一直在使用paperclip上传和自动调整我的Rails应用程序中的照片,我喜欢它.唯一的问题是每隔一个月,我疯狂的经理决定他想要一个新的尺寸来显示照片.所以我在我的照片模型中添加了一个新的风格,所有都适合新照片,但现有的照片现在是一个问题.现在我开始有多张照片要处理,我需要一种编程方式来调整现有照片的大小.对于这样的事情,也许有一些回形针技巧?如果我不需要,我真的不必弄清楚RMagick并自己写一个脚本.
class Post < ActiveRecord::Base
end
post = Post.new
Run Code Online (Sandbox Code Playgroud)
如何判断'post'是否是一个未从数据库中提取的新模型?
我试图mysql2通过Bundler 安装gem,但它一直死于以下错误:
** executing command
/home/cc_rails/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems/installer.rb:483:in 'rescue in block in build_extensions':
ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
/home/cc_rails/.rvm/rubies/ruby-1.9.2-p0/bin/ruby extconf.rb --with-mysql-config=/usr/bin/mysql_config
checking for rb_thread_blocking_region()... yes
checking for mysql.h... no
checking for mysql/mysql.h... no
-----
mysql.h is missing. please check your installation of mysql and try again.
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration …Run Code Online (Sandbox Code Playgroud) 红宝石中符号的功能是什么?字符串和符号之间有什么区别?为什么动态创建大量符号不是一个好主意?
根据Ruby on Rails约定,控制器名称变为多元化,而模型名称是单数.示例:用户控制器,但是用户模型.
rails generate controller Users
rails generate model User name:string email:string
Run Code Online (Sandbox Code Playgroud)
现在打开迁移文件
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :name
t.string :email
t.timestamps
end
end
end
Run Code Online (Sandbox Code Playgroud)
这里的表名是复数(用户).
所以我的问题是 - 为什么表名是复数(用户),即使模型名称是单数(用户)?
给定一个数组,如何找到符合给定条件的所有元素索引?
例如,如果我有:
arr = ['x', 'o', 'x', '.', '.', 'o', 'x']
Run Code Online (Sandbox Code Playgroud)
要查找项目所在的所有索引x,我可以这样做:
arr.each_with_index.map { |a, i| a == 'x' ? i : nil }.compact # => [0, 2, 6]
Run Code Online (Sandbox Code Playgroud)
要么
(0..arr.size-1).select { |i| arr[i] == 'x' } # => [0, 2, 6]
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来实现这一目标?
在我的代码中,我使用了Shoulda匹配器进行了以下验证,效果很好:
it { should validate_presence_of(:name) }
Run Code Online (Sandbox Code Playgroud)
在我的模型中,我已将条件添加到我的验证中:
validates_presence_of :name, :if => eligible?
Run Code Online (Sandbox Code Playgroud)
是否有可能在验证中反映出来?
我已经尝试过查看shoulda匹配器的文档,但无法找到解决方案.
非常感谢!
我想知道如何在运行简单的测试时关闭所有这些警告:
[1] guard(main)>
16:59:46 - INFO - Run all
16:59:46 - INFO - Running all specs
/Users/esjd/.rvm/gems/ruby-2.1.2/gems/rspec-rails-3.0.1/lib/rspec/rails/adapters.rb:124: warning: instance variable @example not initialized
/Users/esjd/.rvm/gems/ruby-2.1.2/gems/rspec-rails-3.0.1/lib/rspec/rails/adapters.rb:124: warning: instance variable @example not initialized
.*
Pending:
HomeHelper add some examples to (or delete) /Users/esjd/ruby/rails/ts3/spec/helpers/home_helper_spec.rb
# Not yet implemented
# ./spec/helpers/home_helper_spec.rb:14
Finished in 0.03601 seconds (files took 7 minutes 48 seconds to load)
2 examples, 0 failures, 1 pending
/Users/esjd/.rvm/gems/ruby-2.1.2/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:76: warning: global variable `$CELLULOID_DEBUG' not initialized
/Users/esjd/.rvm/gems/ruby-2.1.2/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:76: warning: global variable `$CELLULOID_DEBUG' not initialized
/Users/esjd/.rvm/gems/ruby-2.1.2/gems/guard-2.6.1/lib/guard/interactor.rb:64: warning: …Run Code Online (Sandbox Code Playgroud)