我正在使用 Postgres 和 ActiveRecord 开发一个 Rails 应用程序,它跟踪付款和交易费用(基于百分比)。
目前我正在使用 BigDecimal(和 ActiveRecord 中的小数列)来跟踪这些事务的值,但处理舍入令人沮丧。(例如如何8.05 - 1.0 ==> 7.050000000000001)
继续使用decimal美元金额列是否有意义?或者我应该改用integer价值美分存储所有内容,这样我就不需要处理舍入问题。
一个重要的注意事项是,我的交易(截至目前)都不值几美分。
每种方法的优缺点是什么?
accounting database-design currency ruby-on-rails ruby-on-rails-3
我是Rails编程的新手.我正在考虑为每个railscast教程实现设计和omniauth身份验证.由于我还不知道mongoid,我计划刚开始使用Activerecord.最终我想用Mongoid我想.
我如何从Activerecord迁移到Mongoid?
我只想跟我的项目一起滚动.特别是当我的用户很少时,Activerecord可能就足够了.我以前从未这样做过,所以希望有人可以告诉我这种方法是否会比它的价值更麻烦.现在花更多时间学习mongoid对我来说更有意义吗?
我很期待听到Rails老兵的消息.
我想在我的rails应用程序中根据最近的文章和评论创建一个活动源.它们是两种不同类型的activerecord(它们的表结构不同).
理想情况下,我可以创建一个混合的文章和评论数组,然后按相反的时间顺序显示它们.
所以,我可以弄清楚如何得到一个文章和评论的数组,然后将它们合并在一起并按created_at排序,但我很确定,一旦我开始使用分页,它将无法正常工作.
有没有办法创建一个像创建混合数组的东西?
对我来说其他问题之一是它可能是所有文章,它可能是所有评论或两者之间的某种组合.所以我不能只说我将接受最后15篇文章和最后15篇评论.
关于如何解决这个问题的任何想法?
我有一个有5或6个LEFT JOINS的mysql查询.正如预期的那样,这很慢.考虑到我只期望大约100个结果,我可能更有意义的是运行大量单独的SQL查询并手动将它们拼接在一起.我猜这需要很长时间,因为使用多个左连接创建的巨大表.是对的吗?
我在Rails 3中这样做.我知道创建活动记录是昂贵的,但我认为它可能比拥有这么多LEFT JOINS更快.我对数据库的工作原理知之甚少.非常感谢任何见解.
编辑:这是实际的查询和表模式
询问
SELECT
people.*FROMpeopleLEFT JOINperson_organization_relationshipsONperson_organization_relationships.person_id =people.id ANDperson_organization_relationships.stop_person IS NULL LEFT JOINperson_redirect_relationshipsas r_from_others ON r_from_others.parent_id =people.id AND r_from_others.stop_person IS NULL LEFT JOINperson_redirect_relationshipsas r_to_others ON r_to_others.child_id =people.id AND r_to_others.stop_person IS NULL LEFT JOINperson_organization_relationshipsAS r_p_check ON r_p_check.person_id = r_from_others.child_id AND r_p_check.stop_person IS NULL LEFT JOINorganization_redirect_relationshipsas r_o_check ON r_o_check.child_id =person_organization_relationships.organization_id AND r_o_check.stop_organization IS NULL …
我有一个在 Ruby 2.0 上运行的 Ruby on Rails 应用程序(v4.0.1,尽管我认为这与这里无关),并且我允许用户通过 OAuth 进入第三方服务,以便我访问他们的数据。
我已将应用程序的消费者密钥和消费者秘密存储在源代码控制之外的环境变量中。
在 OAuth / OAuth2 舞蹈中的最后一次回调之后,我为每个用户提供了可用于访问他们的信息的令牌。
对于他们的登录凭据,我使用一种散列方式,不将他们的密码以纯文本形式存储在我的数据库中,所以我想我应该对他们的令牌执行类似的操作,但由于我需要使用这些令牌来访问他们的数据,所以我需要能够重现纯文本,所以我试图找出进行对称加密的最佳方法。
我计划将加密密钥存储为环境变量,然后使用https://gist.github.com/nono/2995118之类的内容来加密令牌。这安全吗?
有人使用过这个https://github.com/reidmorrison/symmetry-encryption gem 吗?
我正在努力阻止自己重新发明轮子。有小费吗?
我打算在我的Cocoa应用程序中存储密码NSUserDefaults但后来我意识到它以纯文本形式存储.
如何存储Cocoa应用程序的密码凭据?
我有一个动态的表单,我用rails写的.我想确保用户可以添加不超过五个链接.
我从两个链接开始,我有另一个链接,允许用户添加另一个字段.我还在链接旁边有一个链接,允许用户删除一个字段,该字段设置隐藏字段,然后用slideUp();隐藏字段.
我想知道用户希望提交的屏幕上是否有5个字段.
这是我目前正在使用的 - 这只是计算具有该类名的所有div.
if($(".classname").length <5){
//create element dynamically
}
Run Code Online (Sandbox Code Playgroud)
我想检查"style ='display:none;'"我怎么能这样做?
我是新手使用Solr Sunspot for Rails.我正在尝试使用
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/>
Run Code Online (Sandbox Code Playgroud)
所以自然不是所有的代币都会匹配.我无法弄清楚如何在我的搜索http://outoftime.github.com/sunspot/docs/index.html中使用minimum_match功能.任何帮助将不胜感激.
我试过,我得到0结果:
Articles.search do
fulltext params[:q] do
:minimum_match => 1
end
end
Run Code Online (Sandbox Code Playgroud) 有没有办法使用Redcarpet或Bluecloth,这样当它插入降价时它不会产生任何标题?
例如:
#header 1
Run Code Online (Sandbox Code Playgroud)
收益率:
标题1
标题1(首选)
和:
##header 2
Run Code Online (Sandbox Code Playgroud)
收益率:
标题2
标题2(首选)
我正在尝试编写一个自定义验证器,用于检查输入到文本字段中的单词数.
我试图按照railscasts第211集中的示例 - http://railscasts.com/episodes/211-validations-in-rails-3
所以我创建了一个文件/lib/word_limit_validator.rb并从教程中复制了相同的代码.我知道这段代码不计算单词的数量,我只是想尝试使用它,因为我知道它应该如何表现.
class WordLimitValidator < ActiveModel::EachValidator
def validate_each(object, attribute, value)
unless value =~ /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
object.errors[attribute] << (options[:message] || "is not formatted properly")
end
end
end
Run Code Online (Sandbox Code Playgroud)
这是我在验证中使用的行:
validates :body, :presence => true,
:word_limit => true
Run Code Online (Sandbox Code Playgroud)
当我尝试加载表单时,我收到以下错误:
未知验证器:'word_limit'
如何让rails识别我的验证器?
系统规格:Mac OS 10.6.7 Rails 3.0.4 ruby 1.9.2p136
我正在尝试验证video_id相对于session_id的唯一性.我不知道我做错了什么.这是我的模型代码.
class SessionWatchHistory < ActiveRecord::Base
validates_presence_of :session_id, :on => :create, :message => "can't be blank"
validates_presence_of :video_id, :on => :create, :message => "can't be blank"
belongs_to :video, :class_name => "Video", :foreign_key => "video_id"
scope :per_session, lambda{ |s| where("session_id = :session", :session => s)}
validates_uniqueness_of :video_id, :scope => [:per_session]
end
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一行代码来告诉我数组中是否有符合一组条件的元素然后中断为true.
例如
我有[1,2,3,4,5,6,7,8,9,10,11,12],我想找到第一个可以被2和3整除的元素.我想写一个衬里,一旦它达到6就会返回true而不处理数组中剩余的元素.
我可以为每个循环编写一个并打破,但我觉得应该有一种方法可以在一行代码中完成.
我正在阅读http://hyperpolyglot.org/scripting并偶然发现了// = assignemnt运算符.我以前从未见过它.它有什么作用?
activerecord ×3
ruby ×2
validation ×2
accounting ×1
bluecloth ×1
cocoa ×1
currency ×1
encryption ×1
javascript ×1
jquery ×1
left-join ×1
markdown ×1
migration ×1
mongodb ×1
mongoid ×1
mysql ×1
oauth ×1
oauth-2.0 ×1
python ×1
redcarpet ×1
solr ×1
sunspot ×1