Questions tagged «ruby-on-rails»

Ruby on Rails是一个用Ruby编写的开源全栈Web应用程序框架。它遵循流行的MVC框架模型,并以其“配置之上的约定”方法进行应用程序开发而闻名。

4
RSpec:如何测试方法是否被调用?
在编写RSpec测试时,我发现自己写了很多类似这样的代码,以确保在测试执行过程中调用了一个方法(为了论证,我们只能说我不能真正询问状态调用后对象的名称,因为该方法执行的操作不容易看到的效果)。 describe "#foo" it "should call 'bar' with appropriate arguments" do called_bar = false subject.stub(:bar).with("an argument I want") { called_bar = true } subject.foo expect(called_bar).to be_true end end 我想知道的是:是否有比这更好的语法?我是否缺少一些时髦的RSpec令人敬畏的东西,它将上面的代码减少到几行?should_receive听起来应该这样做,但进一步阅读听起来并不完全是这样。

1
“分配分支条件大小太大”是什么意思,如何解决?
在我的Rails应用程序中,我Rubocop用来检查问题。今天它给了我这样的错误:Assignment Branch Condition size for show is too high。这是我的代码: def show @category = Category.friendly.find(params[:id]) @categories = Category.all @search = @category.products.approved.order(updated_at: :desc).ransack(params[:q]) @products = @search.result.page(params[:page]).per(50) rate end 这是什么意思,我该如何解决?

18
gemspec中无效的日期格式规范
当我尝试在Windows中使用gems时,出现以下错误,我也提到了 这个stackoverflow帖子以及更新的rubygems和rails。但是没有任何办法可以解决问题。 以下是完整的错误, D:\>宝石环境 [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications中的gemspec无效 /tilt-1.3.3.gemspec]:规范中的日期格式无效:“ 2011-08-25 00:00:00 .000000000Z“ [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications中的gemspec无效 /execjs-1.2.4.gemspec]:规范中无效的日期格式:“ 2011-08-03 00:00: 00.000000000Z“ [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications中的gemspec无效 /temple-0.3.3.gemspec]:规范中的日期格式无效:“ 2011-08-26 00:00: 00.000000000Z“ [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications中的gemspec无效 /guard-0.6.3.gemspec]:规范中的日期格式无效:“ 2011-09-01 00:00:0 0.000000000Z“ [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications中的gemspec无效 /guard-livereload-0.3.1.gemspec]:规范中的日期格式无效:“ 2011-09 -01 00:00:00.000000000Z“ [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications中的gemspec无效 /rack-cache-1.0.3.gemspec]:规范中的日期格式无效:“ 2011-08-27 00 :00:00.000000000Z“ [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications中的gemspec无效 /tilt-1.3.3.gemspec]:规范中的日期格式无效:“ 2011-08-25 00:00:00 .000000000Z“ [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications中的gemspec无效 /execjs-1.2.4.gemspec]:规范中无效的日期格式:“ 2011-08-03 00:00: 00.000000000Z“ [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications中的gemspec无效 /temple-0.3.3.gemspec]:规范中的日期格式无效:“ 2011-08-26 00:00: 00.000000000Z“ [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications中的gemspec无效 …


13
Heroku推送被拒绝,未检测到Cedar支持的应用
我正在使用Rails 3.1.3创建一个Rails应用程序: git init git remote add heroku <my heroku repo> git add . git commit -a -m "First commit" git push heroku master 得到: Counting objects: 102, done. Delta compression using up to 4 threads. Compressing objects: 100% (86/86), done. Writing objects: 100% (102/102), 315.47 KiB, done. Total 102 …

7
没有为Rack :: Session :: Cookie警告提供秘密选项?
我正在Fedora 17下运行Rails 3.2.3,Ruby 1.9。运行时收到此警告,rails s如何解决? 安全警告:没有为Rack :: Session :: Cookie提供任何秘密选项。这构成了安全威胁。强烈建议您提供一个秘密,以防止手工制作的cookie可能造成的利用。Rack的将来版本将不支持此功能,将来的版本甚至会使您现有的用户cookie失效。

4
Ruby on Rails:如果数字小于10,如何在数字前加零?
我正在寻找这样将一位数字转换为两位数字的方法: 9 ==> 09 5 ==> 05 12 == 12 4 ==> 04 我认为我可以放一堆if-else语句(如果数字小于10,则执行gsub),但认为那是可怕的编码。我知道Rails具有number_with_precision,但我看到它仅适用于十进制数字。关于如何将一位数字转换为两位数字的任何想法?

2
Rails:记录异常的整个堆栈跟踪
我一直在尝试找出记录堆栈跟踪的正确方法。我碰到了这个链接,该链接指出logger.error $!,$ !. backtrace是行之有效的方法,但log_error对我而言不起作用。根据文档,我看不到如何将第二个参数传递给错误方法,因为rails使用的ruby记录器仅接受一个参数。 奇怪地(或可能不是)第二个参数被接受而没有任何口译员的抱怨。但是,我传递给它的任何内容都将被忽略。 谁能解释我所缺少的吗?对错误的第二个参数是什么意思以及它在吃什么的任何见解?




4
命名路线_path与_url
Rails提供了命名路线。 可以使用路径或网址调用路由助手 例如从文档: # and provide these named routes root_url # => 'http://www.example.com/' root_path # => '/' 坦白讲,我从未使用过*_url助手,我能够使用它进行工作*_path。 我有些困惑,这两个不同的助手的目的是什么? 它们彼此之间有什么不同? 一些真实的例子,并附有解释什么时候该使用的很棒。

10
Rails:如何在Rails表单中更改“提交”按钮上的文本
我已经在我想做的事情下面列出了_form.html.erb文件,就是更改了“提交”按钮上的文本,我知道如何在html中进行操作,但不知道如何在Rails 3中进行操作 %= form_for(@faq) do |f| %> <% if @faq.errors.any? %> <div id="error_explanation"> <h2><%= pluralize(@faq.errors.count, "error") %> prohibited this faq from being saved:</h2> <ul> <% @faq.errors.full_messages.each do |msg| %> <li><%= msg %></li> <% end %> </ul> </div> <% end %> <div class="field"> <%= f.label :question %><br /> <%= f.text_field :question …

6
将密码作为环境变量(而不是纯文本)存储在配置文件中是否安全?
我在Rails,django(和一点点php)上开发了一些应用程序,在其中一些程序中我开始做的一件事是将数据库和其他密码作为环境变量而不是纯文本存储在某些配置文件中(或在settings.py中(对于Django应用)。 在与我的一位合作者讨论此问题时,他建议这是一种不良做法-也许这并不像最初看起来那样安全。 所以,我想知道-这是安全的做法吗?将密码以纯文本格式存储在这些文件中是否更安全(当然,请确保不要将这些文件保留在公共存储库中或其他内容中)?

8
从Rails 4.1中的select保存枚举
我使用Rails 4.1中的枚举来跟踪葡萄酒的颜色。 Wine.rb class Wine < ActiveRecord::Base enum color: [:red, :white, :sparkling] end 在我看来,我会生成一个选择,以便用户可以选择某种颜色的葡萄酒 f.input :color, :as => :select, :collection => Wine.colors 这将生成以下HTML: <select id="wine_color" name="wine[color]"> <option value=""></option> <option value="0">red</option> <option value="1">white</option> <option value="2">sparkling</option> </select> 但是,提交表单后,我收到了一个说明的参数错误'1' is not a valid color。我意识到这是因为color必须平等1而不是平等"1"。 有没有一种方法可以迫使Rails将颜色解释为整数而不是字符串?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.