大家好,
Rails 3.2.9.rc1 已发布。如果不发现任何回归问题,我将于本周四 1 号发布 3.2.9 最终版本。如果您发现回归问题,请在 GitHub 上发起一个问题并提及我,给我发邮件或 Twitter 私信,无论哪种方式,都请告诉我 :)。
Action Mailer
在未调用 mail()
时不呈现视图。修复 #7761
Yves Senn
Action Pack
接受 link_to
帮助器的 :remote
作为符号选项。Riley Lynch
在视图测试用例之外向 assert_template
传递 :locals
选项时发出警告。修复 #3415
Yves Senn
重命名 ActionController::TemplateAssertions 上的内部变量,以防止命名冲突。@partials、@templates 和 @layouts 现在已加上下划线前缀。修复 #7459
Yves Senn
resource
和 resources
不修改已传递的选项哈希。修复 #7777
Yves Senn
预编译的资源包括从 foo.js 到 foo/index.js 以及反之亦然的别名。
# Precompiles phone-<digest>.css and aliases phone/index.css to phone.css.
config.assets.precompile = [ 'phone.css' ]
# Precompiles phone/index-<digest>.css and aliases phone.css to phone/index.css.
config.assets.precompile = [ 'phone/index.css' ]
# Both of these work with either precompile thanks to their aliases.
<%= stylesheet_link_tag 'phone', media: 'all' %>
<%= stylesheet_link_tag 'phone/index', media: 'all' %>
Jeremy Kemper
assert_template
不能再通过与模板名称匹配的任何字符串传递。
之前,当我们有模板 /layout/hello.html.erb
时,assert_template
可通过与任何字符串匹配传递。这种行为允许出现 config.digest = false
,这与
assert_template "layout"
assert_template "out/hello"
现在仅可通过
assert_template "layout/hello"
assert_template "hello"
修复了 #3849。
Hugolnx
将 ActionDispatch::Http::UploadedFile
处理为 Rack::Test::UploadedFile
,不要对其调用 to_param。由于 Rack::Test::UploadedFile
与 API 不兼容,因此需要执行此操作才能测试依赖 tempfile
的文件上传。
Tim Vandecasteele
修复了使用 :module
选项设置范围的速记路由未将模块添加到控制器的错误,如问题 #6497 中所述。现在应能正常工作
scope :module => "engine" do
get "api/version" # routes to engine/api#version
end
Luiz Felipe Garcia Pereira
针对 asset_path
尊重 config.digest = false
以前,asset_path
内部仅尊重 :digest
选项,但忽略全局配置设置。这意味着不能将 config.digest = false
与 config.compile = false
结合使用,而此版本已更正了该行为。
Peter Wagenet
修复了 #7646,当引发异常时,日志现在显示正确的状态代码。
Yves Senn
修复同时使用 **disabled** 和 **discard** 选项时处理日期选择的问题。修复了 #7431。
Vasiliy Ermolovich
当 **option_tags** 为 nil 时修复 select_tag。修复了 #7404。
Sandeep Ravichandran
现在,如果文件不存在,**javascript_include_tag :all** 将不会包含 **application.js**。Prem Sichanugrist
为所有会话存储支持 Cookie jar 选项(例如,domain:all)。修复了 GH#3047、GH#2483。
Ravil Bayramgalin
优化 send_file 的性能:避免必须将打开的文件句柄作为响应正文传递。Rack::Sendfile 通常会拦截响应并直接使用路径,所以没有理由再打开文件。此性能优化还解决了 jRuby 编码的问题,也是回溯的原因,请参阅问题 #6844。
Jeremy Kemper 和 Erich Menge
活动模型
由于生成器发生了变化,nil 值和空字符串现在会生成闭合标签,因此不是生成这个
<pseudonyms nil=\"true\"></pseudonyms>
而是生成这个
<pseudonyms nil=\"true\"/>
Carlos Antonio da Silva
活动记录
修复了一个错误,其中 **update_columns** 和 **update_column** 不会允许你更新主键列。
Henrik Nyh
解码数据库连接 URL 中经过 URI 编码的属性。
Shawn Veader
修复 AR#dup 以使 dup 的对象中的验证错误失效。以前,原始对象和 dup 的对象共享相同的错误。
在从保留连接哈希中删除时进行同步。修复了 #7955
PostgreSQL 适配器在数据库中使用多个模式和域时正确提取默认值。修复了 #7914
Arturo Pie
修复加载从其他表中选择列的集合关联时出现的弃用通知,如果以前使用该关联构建了新记录。
Ernie Miller
postgres 适配器现在支持包含大写字母的表。修复了 #5920
Yves Senn
**CollectionAssociation#count** 在父记录未持久化的前提下返回 **0**,无需查询。
之前
person.pets.count
# SELECT COUNT(*) FROM "pets" WHERE "pets"."person_id" IS NULL
# => 0
之后
person.pets.count
# fires without sql query
# => 0
Francesco Rodriguez
修复在 **has_many :through** 关联上 **reset_counters** 崩溃的问题。修复了 #7822。
lulalala
ConnectionPool 识别 **checkout_timeout** spec 键优先于旧的 **wait_timeout** spec 键,可用于避免与 mysql2 使用 **wait_timeout** 时发生冲突。关闭了 #7684。
jrochkind
将 **field_changed?** 重命名为 **_field_changed?**,以便用户可以创建一个名为 field 的字段
Akira Matsuda,由 Steve Klabnik 回溯
修复通过从未保存模型的 **has_many :through** 关联对 **collection=[]** 使用时创建关联模型的问题。修复了 #7661。
Ernie Miller
只解释正常的 CRUD sql(select / update / insert / delete)。解决无法解释的 SQL 问题。关闭 #7544 #6458。
kennyj
回溯测试覆盖率,确保 PostgreSQL 自动重新连接功能保持正常。
Steve Jorgensen
执行 mysql/mysql2 中的 databases.rake 时,使用 config[‘encoding’] 而不是 config[‘charset’]。database.yml 中的正确选项是“encoding”。
kennyj
修复 ConnectionAdapters::Column.type_cast_code 整形转换,始终调用 #to_i 将值转换回整数。修复 #7509。
Thiago Pradi
修复时间列类型转换,将无效的时间字符串值正确地返回为 nil。
Adam Meehan
修复使用配置的 inheritance_column
时的 becomes
。
Yves Senn
修复具有相同外键的多个 belongs_to
关联且其中一个具有计数器缓存时 reset_counters
。修复 #5200。
Dave Desrochers
在 dirty tracking 中比较时间戳属性时,对 usec 四舍五入。修复 #6975。
kennyj
使用相反的父级作为 has_many 关联的第一个和最后一个子级。
Ravil Bayramgalin
修复 Column.microseconds 和 Column.fast_string_to_date,以避免将时间戳秒转换为浮点数,因为它偶尔会导致微妙时间发生不准确的情况。修复 #7352。
Ari Pollak
修复跳过回调的 increment!
,decrement!
,toggle!
。修复 #7306。
Rafael Mendonça França
修复 AR#create,使其在引发 AR::RecordInvalid 时返回一条未保存记录。修复 #3217。
Dave Yeu
为具有空值或相等值分配的 has_one 关联移除不必要的交易。修复 #7191。
kennyj
允许存储与空列配合使用。修复 #4840。
Jeremy Walker
从 postgresql 适配器中的系统查询中移除预先准备好的语句。修复 #5872。
Ivan Evtuhovich
确保 :environment
任务在 db:schema:load
或 db:structure:load
之前执行。修复 #4772。
Seamus Abshere
Active Resource
Active Support
添加 logger.push_tags 和 .pop_tags 以补充 logger.tagged。
class Job
def before
Rails.logger.push_tags :jobs, self.class.name
end
def after
Rails.logger.pop_tags 2
end
end
Jeremy Kemper
添加对 ActiveSupport::TimeWithZone#strftime 的 %:z 和 %::z 格式字符串支持。[修复 #6962] kennyj
Railties
不热加载 app/assets 和 app/views。Elia Schito
在 ruby_version_check.rb 中更新受支持的 ruby 版本错误消息。Lihan Li
您可以在此处找到 v3.2.8 和 v3.2.9.rc1 之间的更改列表 here
感谢大家!