Questions tagged «ruby-on-rails»

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




4
如何生成迁移以使引用多态
我有一个产品表,想添加一列: t.references :imageable, :polymorphic => true 我正在尝试通过执行以下操作来生成迁移: $ rails generate migration AddImageableToProducts imageable:references:polymorphic 但我显然做错了。有人可以提出任何建议吗?谢谢 当我尝试在生成迁移后手动将其放入时,我这样做是这样的: class AddImageableToProducts < ActiveRecord::Migration def self.up add_column :products, :imageable, :references, :polymorphic => true end def self.down remove_column :products, :imageable end end 而且仍然没有用

28
为什么使用Ruby代替Smalltalk?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 Ruby正变得越来越流行,很大程度上是受Ruby on Rails的影响,但感觉它正在青春期中挣扎。Ruby和Smalltalk之间有很多相似之处- 磁悬浮证明了这一点。尽管语法更不寻常,Smalltalk具有Ruby的所有(如果不是更多的话)面向对象的美。 根据我的阅读,Smalltalk似乎击败了Ruby: 成熟度(1970年代发展) 稳定性 商业支持 分布式源代码控制(理解代码的结构,而不仅仅是文本差异) VM的几种实现 跨平台支持 在海边的Web框架作为一个强有力的替代选择到Rails 看起来Ruby只是在重新发明轮子。那么,为什么Ruby开发人员不使用SmallTalk?Ruby有Smalltalk没有什么? 记录一下:我是Ruby的人,几乎没有Smalltalk的经验,但是我开始怀疑为什么。 编辑:我认为GNU Smalltalk解决了脚本编写的问题。据我了解,这使您可以在常规的旧文本文件中编写smalltalk,而不必再使用Smalltalk IDE。然后,您可以使用以下命令运行脚本: gst smalltalk_file

10
如何在测试环境中运行Rails控制台并加载test_helper.rb?
背景:Thoughtbot的“ Factory Girl” gem存在一些问题,它用于创建在单元测试和其他测试中使用的对象。我想转到控制台并运行不同的Factory Girl呼叫,以查看发生了什么情况。例如,我想去那里做... >> Factory(:user).inspect 我知道您可以在不同的环境中运行控制台... $脚本/控制台RAILS_ENV = test 但是当我这样做时,Factory类不可用。好像test_helper.rb没有加载。 我尝试了各种require呼叫,包括具有绝对路径的呼叫,test_helper.rb但与此类似,它们失败了: $ script/console RAILS_ENV=test >> require '/Users/ethan/project/contactdb/test/test_helper.rb' Errno::ENOENT: No such file or directory - /Users/ethan/project/contactdb/config/environments/RAILS_ENV=test.rb r 啊

4
为何在渲染部分图像之前先进行escape_javascript?
我正在看这个Railscast插曲,想知道为什么escape_javascript需要在这里致电: $("#reviews").append("<%= escape_javascript(render(:partial => @review)) %>"); 有什么escape_javascript用? 根据Rails的文档: escape_javascript(javascript) 转义符返回以及JavaScript段的单引号和双引号。 但这对我来说意义不大。

16
在Rails的html.erb模板中阻止注释
您如何注释掉混有ruby代码的html? some text <% ... %> more text <%= ... %> something else <% ... %> 在jsp中,它非常简单:<%-- ... --%>,但是我无法在rails中找到任何简洁的选项。 简单的html注释<!-- ... -->不起作用:红宝石代码仍在执行并且大喊错误。 有一个if false与html注释一起使用的选项,但是它很冗长,更不用说IDE不支持它。 还有一个来自纯红宝石的选项,它出奇地起作用。 <% =begin %> ... html and ruby code goes here <% =end %> 总体来说还不错,除了它很冗长,看起来很怪异,而且我所知道的所有Ruby IDE都不支持它(是的,我喜欢用一个键来评论/注释掉)。 我很好奇,在rails中执行此操作是否有任何“官方”? 谢谢!
120 ruby-on-rails  ruby  erb 

3
Rake中的“环境”任务是什么?
根据“ 自定义耙任务 ”: desc "Pick a random user as the winner" task :winner => :environment do puts "Winner: #{pick(User).name}" end 据我所知,:winner => :environment意思是“做environment之前winner”。那是environment什么 我什么时候应该使用它? 我尝试过rake -T,但是在清单中我找不到environment。

5
Rails迁移:使用替代名称的t.references?
因此,对于学校课程,我有一个像这样的create_table: create_table :courses do |t| t.string :name t.references :course t.timestamps end 但我想参考 2门其他课程,如: has_many :transferrable_as # A Course has_many :same_as # Another Course 我可以说以下吗? t.references :transferrable_as, :as=> :course


8
如何使用Factory Girl生成回形针附件?
我的模型人有很多图像,其中图像有一个名为data的回形针附件字段,缩写形式显示在下面: class Person has_many :images ... end class Image has_attached_file :data belongs_to :person ... end 人员必须至少附有一张图像。 使用FactoryGirl时,我的代码类似于以下内容: Factory.define :image do |a| a.data { File.new(File.join(Rails.root, 'features', 'support', 'file.png')) } a.association :person end Factory.define :person do |p| p.first_name 'Keyzer' p.last_name 'Soze' p.after_create do |person| person.assets = [Factory.build(:image, :person => person)] end # …

11
如何在Factory girl中创建has_and_belongs_to_many关联
鉴于以下 class User < ActiveRecord::Base has_and_belongs_to_many :companies end class Company < ActiveRecord::Base has_and_belongs_to_many :users end 您如何为公司和用户(包括双向关联)定义工厂?这是我的尝试 Factory.define :company do |f| f.users{ |users| [users.association :company]} end Factory.define :user do |f| f.companies{ |companies| [companies.association :user]} end 现在我尝试 Factory :user 可能不足为奇的是,由于工厂彼此递归地使用彼此定义自己,因此会导致无限循环。 更令人惊讶的是,我在任何地方都没有提到如何执行此操作,是否有定义所需工厂的模式,或者我做的是根本错误的事情?

7
无法将时间与RSpec进行比较
我正在使用Ruby on Rails 4和rspec-rails gem 2.14。对于我的对象,我想updated_at在控制器操作运行后将当前时间与对象属性进行比较,但是由于规格未通过,我感到很麻烦。也就是说,给出以下是规范代码: it "updates updated_at attribute" do Timecop.freeze patch :update @article.reload expect(@article.updated_at).to eq(Time.now) end 当我运行以上规范时,出现以下错误: Failure/Error: expect(@article.updated_at).to eq(Time.now) expected: 2013-12-05 14:42:20 UTC got: Thu, 05 Dec 2013 08:42:20 CST -06:00 (compared using ==) 如何使规格通过? 注意:我也尝试了以下操作(请注意utc添加内容): it "updates updated_at attribute" do Timecop.freeze patch :update @article.reload expect(@article.updated_at.utc).to eq(Time.now) …

3
尝试加载gem'uglifier'时出错。(捆绑器:: GemRequireError)
为什么会出现此错误? shibly@mybox:~/blog$ rails server /home/shibly/.gem/ruby/2.2.4/gems/bundler-1.11.2/lib/bundler/runtime.rb:80:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'uglifier'. (Bundler::GemRequireError) from /home/shibly/.gem/ruby/2.2.4/gems/bundler-1.11.2/lib/bundler/runtime.rb:76:in `block (2 levels) in require' from /home/shibly/.gem/ruby/2.2.4/gems/bundler-1.11.2/lib/bundler/runtime.rb:72:in `each' from /home/shibly/.gem/ruby/2.2.4/gems/bundler-1.11.2/lib/bundler/runtime.rb:72:in `block in require' from /home/shibly/.gem/ruby/2.2.4/gems/bundler-1.11.2/lib/bundler/runtime.rb:61:in `each' from /home/shibly/.gem/ruby/2.2.4/gems/bundler-1.11.2/lib/bundler/runtime.rb:61:in `require' from /home/shibly/.gem/ruby/2.2.4/gems/bundler-1.11.2/lib/bundler.rb:99:in `require' from /home/shibly/blog/config/application.rb:7:in …

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.