小编Mar*_* T.的帖子

如何在带有bundler的项目中使用rails的fork中的分支

我在github上有一个rails repo的分支,其中我有一个分支,基于rails-2-3-stable分支.我想基于rails 2.3.10和我的应用程序开发一些更改.我们正在使用bundler,该应用程序版本为SVN.

在github的rails分支中使用我的分支并在机器之间共享的最简洁方法是什么?

一种方法是:

如何安装边缘导轨?

哪个会工作,但感觉不够干净,因为当repo改变时我们必须手动更新销售版本,我们必须检查git repo到svn.

我在Gemfile中尝试过这种变体:

gem 'rails', '2.3.10', :git => 'git://github.com/traveliq/rails.git', :branch => 'tiq-fixes'
gem 'rails', '2.3.10', :git => 'git://github.com/traveliq/rails.git', :tag => 'v2.3.10'
gem 'rails', '2.3.10', :git => 'git://github.com/rails/rails.git', :tag => 'v2.3.10'
Run Code Online (Sandbox Code Playgroud)

所有这些最初都在运行bundle install时工作,但在启动应用程序时,它无法在加载路径中找到rails:

/home/mt/Development/config/boot.rb:57:in `require': no such file to load -- initializer (LoadError)
    from /home/mt/Development/config/boot.rb:57:in `load_initializer'
    from /home/mt/Development/config/boot.rb:117:in `run'
    from /home/mt/Development/config/boot.rb:11:in `boot!'
    from /home/mt/Development/config/boot.rb:130
    from script/console:2:in `re

我的Gemfile.lock条目是这样的:

GIT
  remote: git://github.com/traveliq/rails.git
  revision: 25139ac92cea5b17791d71359bc3ae2a5d526652
  branch: tiq-fixes
  specs:
    rails (2.3.10)

...

DEPENDENCIES

... …

ruby bundle ruby-on-rails github bundler

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

punycode编码的电子邮件地址可以与"真实"地址冲突吗?

问题是:我使用的是第三方电子邮件递送服务,该服务不接受名称部分中包含非ASCII字符的邮件地址,例如müller@example.com.

用Punycode编码这样的地址:

http://en.wikipedia.org/wiki/Punycode

http://idnaconv.phlymail.de/index.php?decoded=m%C3%BCller%40example.com&idn_version=2008&encode=Encode+%3E%3E&lang=de

产生这个地址:

xn--mller-kva@example.com

通过该服务向其发送邮件似乎有效.

但是,我不确定是否有人无法直接注册"xn--mller-kva@example.com",因此接收的电子邮件意为"müller@example.com".

这可能会发生冲突吗?这个问题还有其他解决方案吗?

UPDATE

谢谢你的回答.以下是我们学到的内容摘要:

  • 对电子邮件地址的本地部分进行限制可以使用,您可以从这样的编码地址发送和接收(当然)
  • 但是,根本无法保证提供者或邮件客户端能够理解编码,或者自动执行此操作.因此可以进行冲突,整个想法不是很好:)
  • 根据规范,人们应该简单地做其他人做的事情,即不允许或接受非ASCII名称部分
  • 最后,事实证明,第三方服务无论如何都禁止这样的诡计.

email punycode

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

即使未更改,也要停止ActiveRecord保存序列化列

与散列的Rails部分更新问题非常相似,但问题并没有真正得到回答恕我直言.

问题是:我有一个带序列化列的模型:

class Import < AR::Base
  serialize :data
Run Code Online (Sandbox Code Playgroud)

在我的情况下,在第一次保存/创建模型后,这些数据将会,而且应该不会更改.所以我想禁用AR的功能,它始终保存序列化列(这通常是一个好主意,因为它无法检测到这些更改).我想禁用保存,因为数据可能非常大,模型将经常更新.

我已经尝试过monkeypatching到ActiceRecord :: AttributeMethods :: Dirty,如下所示:

class Import
  def update(*)
    if partial_updates?
      super(changed | (attributes.keys & (self.class.serialized_attributes.keys - ["data"])))
    else
     super
   end
 end
Run Code Online (Sandbox Code Playgroud)

但这似乎没有效果.有人有更好的主意吗?

这是在Rails 3.0.12下

serialization activerecord ruby-on-rails updates partial

6
推荐指数
1
解决办法
1681
查看次数