Tag: ruby在轨道上3

我可以使用Ruby on Rails控制台来记住我的命令历史吗?

我在Ruby on Rails 3.1.1中使用控制台,我发现它的命令历史logging(向上箭头)非常片断。 我今天几次在几个控制台会话中运行命令p = Product.by_name 'Acme'和p.add_search_term('Snipe') 。 但是,当我重新加载Ruby on Rails控制台时,只有第一个显示在我的命令历史logging中,而不是第二个。 有时他们在我重新加载控制台后,在历史上。 最重要的是,我看到我的历史上几天前的指令,只有几次按下箭头。 有什么configuration,我需要改变或这是一个错误? Ruby on Rails 3.1.1` Ruby 1.9.2p290` Ubuntu 11.10`

Ruby on rails 4应用程序在iframe中不起作用

我如何通过iframe将我的rails应用程序embedded到另一个网站? 它与RoR 3很好地配合,但与RoR 4无关: <iframe src="http://myrailsapp.com/" width="100%" height="50" id="rails_iframe">error!</iframe> 我试图在我的控制器中使用verify_authenticity_token和protect_from_forgery选项…似乎是别的东西(但我不确定)。 UPD。 例如: http : //jsfiddle.net/zP329/

即使存在未设置为true,Railsvalidation也需要数字化

我试图保存一个没有一个字段集的logging – 在模型中有一个有效的数字性。 即使validation中不需要存在,它仍然抛出一个错误,该字段不是一个数字。 validation: validates :network_id, :numericality => true 代码是保存模型: networks.each do |network| network.url = network.raw_data.link network.save! end 错误: Validation failed: Network is not a number

我应该在我的Gemfile中指定确切的版本吗?

我注意到在rubygems.org上有很多gembuild议你用主版本而不是确切版本来指定它们。 例如… haml-rails gem … gem "haml-rails", "~> 0.3.4" # "$ bundle install" will acquire the # latest version before 1.0. 不过,根据Bundler文档 ,我觉得最好能find像这样的确切版本。 gem "haml-rails", "0.3.4" 所以你的haml-railsgem,它的所有依赖不会漂移。 如果几个星期后在另一台计算机上签出项目并运行$ bundle install您将拥有与指定的所有内容完全相同的版本。 我已经看到了点发布的东西,我认为Bundler的整个想法的一部分是“ Bundle.lock ”所有的gem版本。 但是在rubygems.org上,他们使用“〜”很多,所以我可能错过了一些东西? 任何澄清将有助于我理解Bundler和gempipe理。

为什么Ruby on Rails专业人员不使用脚手架?

我有时候从长期以来似乎在使用rails的人那里学习,他们学到的一个重要的教训是“不要使用脚手架”。 同样在irc上,我从这个方向读到一些常见的提示。 我的问题是为什么,这有什么坏处呢? 而且nifty_scaffolding也不好? 我的猜测是,这是不好的,因为它默认生成一个控制器操作的xml版本,这将暴露我们的应用程序的字段名称给任何人,使它更容易受到攻击,所以也许是这样吗? 你不做脚手架的原因是什么?

Rails,ruby,如何sorting一个数组?

在我的Rails应用程序中,我创build了一个数组,像这样: @messages.each do |message| @list << { :id => message.id, :title => message.title, :time_ago => message.replies.first.created_at } end 做完这个数组后,我想然后按time_ago ASC顺序sorting,这是可能的吗?

为什么在Rails 3中没有发现lib / tasks中的自定义rake任务?

内置rake任务工作正常,但我的新的自定义之一,在Project / lib / tasks / payments.rb不会被加载: namespace :payments do desc "Tally payments at the end of the month" task :compute => :environment do BillingPeriod.compute_new_period end end $ rake payments:compute (in /Users/rob/Code/Apps/skyfarm) rake aborted! Don't know how to build task 'payments:compute' 它工作正常,如果我加载文件application.rb: require 'lib/tasks/payments.rb' …但它打破了其他的东西: $ rails s ./lib/tasks/payments.rb:1: undefined method `namespace' for main:Object (NoMethodError)

如何检查一个数字是否包含在一个范围内(在一个语句中)?

我正在使用Ruby on Rails 3.0.9,我想检查一个数字是否包含在一个范围内。 也就是说,如果我有一个variablesnumber = 5我想检查1 <= number <= 10并检索一个布尔值,如果数值包括在该范围内。 我可以这样做: number >= 1 && number <= 10 但我想在一个声明中这样做。 我怎样才能做到这一点?

运行`rails generate controller`时跳过创buildtesting,资产和助手的语法是什么?

我阅读帮助和尝试以下命令跳过生成的testing,资产和帮手文件 $ bin/rails generate controller home index –helper false –assets false –controller-specs false –view-specs false create- app/controllers/home_controller.rb route get "home/index" invoke erb create app/views/home create app/views/home/index.html.erb invoke rspec error false [not found] error false [not found] 正如你可能注意到这个工程&唯一controller, routes上面的输出,会生成controller, routes和views 。 但是最后两行很有意思: error false [not found] error false [not found] 显然,rails似乎不喜欢–option-name false语法。 所以这个错误,因为我使用了错误的语法? 如果是,那么正确的方法是什么? 谢谢

Rails 3.如何以编辑forms显示两位小数?

我有这个编辑表单。 但是,当我存储1.5的东西,我想显示为1.50。 我怎么可以用forms助手做到这一点? <%= f.text_field :cost, :class => 'cost' %>