Questions tagged «ruby-on-rails»

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

8
Rails:include与。:joins
这更多是“为什么事情会这样工作”的问题,而不是“我不知道如何做到”的问题。 因此,使用有关拉取您知道将要使用的关联记录的福音是有用的,:include因为您将获得联接并避免了很多额外的查询: Post.all(:include => :comments) 但是,当您查看日志时,不会发生连接: Post Load (3.7ms) SELECT * FROM "posts" Comment Load (0.2ms) SELECT "comments.*" FROM "comments" WHERE ("comments".post_id IN (1,2,3,4)) ORDER BY created_at asc) 之所以采用捷径,是因为它可以一次提取所有注释,但是它仍然不是联接(所有文档似乎都在说)。我可以加入的唯一方法是使用:joins而不是:include: Post.all(:joins => :comments) 日志显示: Post Load (6.0ms) SELECT "posts".* FROM "posts" INNER JOIN "comments" ON "posts".id = "comments".post_id 我想念什么吗?我有一个具有六个关联的应用程序,并且在一个屏幕上显示所有关联的数据。似乎最好有一个联合查询而不是6个人。我知道从性能角度来看,执行联接而不是进行单个查询并不总是总好(实际上,如果按时间花费,看起来上面的两个查询比联接要快),但是毕竟是文档我一直在阅读,我很惊讶地发现它:include不能像广告中所说的那样工作。 也许Rails的是认识到性能问题,并除非在某些情况下,不加入呢?


5
如何将ruby哈希对象转换为JSON?
如何将ruby哈希对象转换为JSON?所以我在下面尝试这个例子,它不起作用? 我当时在看RubyDoc,显然Hash对象没有to_json方法。但是我正在阅读Rails支持active_record.to_json并且也支持的博客hash#to_json。我可以理解ActiveRecord是一个Rails对象,但Hash不是Rails本身,它是一个纯Ruby对象。因此,在Rails中可以执行hash.to_json,但不能在纯Ruby中执行? car = {:make => "bmw", :year => "2003"} car.to_json

14
如何在Rails中定义自定义配置变量
我想知道如何向Rails应用程序添加自定义配置变量,以及如何在控制器中访问它们,例如,我想能够在配置文件中定义一个upload_directory,例如development.rb,并能够在其中一个文件中访问它。控制器。 其次,如果要添加具有s3访问权限,秘密密钥的yaml文件,我打算如何在应用程序中支持S3,如何在Rails应用程序中对其进行初始化以及如何访问已定义的值在该配置文件中。

6
当模型已经存在时,如何运行“ rails generate scaffold”?
我是Rails的新手,所以我当前的项目处于怪异状态。 我生成的第一批内容之一是“电影”模型。然后,我开始更详细地定义它,添加一些方法,等等。 我现在意识到我应该已经生成了它,rails generate scaffold以连接诸如路由,视图,控制器等之类的东西。 我试图生成脚手架,但出现一个错误,说已经存在一个具有相同名称的迁移文件。 现在为我的“电影”创建脚手架的最佳方法是什么?(使用滑轨3)


10
如何找到在运行时定义方法的位置?
我们最近遇到了一个问题,即在进行了一系列提交之后,后端进程无法运行。现在,我们是个不错的男孩和女孩,rake test每次登记后都跑了,但由于Rails的库加载有些奇怪,这种情况仅在我们以生产模式直接从Mongrel进行运行时发生。 我跟踪了该错误,这是由于一个新的Rails gem覆盖了String类中的一种方法,从而打破了运行时Rails代码中的一种狭义用法。 总之,长话短说,在运行时是否有办法询问Ruby在哪里定义了方法?这样的东西whereami( :foo )回来了/path/to/some/file.rb line #45吗?在这种情况下,告诉我它在String类中定义是没有帮助的,因为它被某些库重载了。 我不能保证源代码存在于我的项目中,因此grepping 'def foo'并不一定能提供我所需要的东西,更不用说我是否有很多东西 def foo,有时我直到运行时才知道我会使用哪个。

9
Rails迁移变更栏
我们具有script/generate migration add_fieldname_to_tablename fieldname:datatype将新列添加到模型的语法。 在同一行上,我们是否具有用于更改列的数据类型的脚本/生成器?还是应该将SQL直接写到我的原始迁移中? 我想将列从更改datetime为date。


6
原始vs. html_safe与h来对html进行转义
假设我有以下字符串 @x = "<a href='#'>Turn me into a link</a>" 在我看来,我希望显示一个链接。也就是说,我不希望将@x中的所有内容都转义并显示为字符串。使用之间有什么区别 <%= raw @x %> <%= h @x %> <%= @x.html_safe %> ?
323 ruby-on-rails  erb 



3
在每个“ when”块中具有多个值的case语句
我能描述我所寻找的最好方法是向您展示到目前为止我尝试过的失败代码: case car when ['honda', 'acura'].include?(car) # code when 'toyota' || 'lexus' # code end 我有大约4或5种不同的when情况,应该由的大约50种不同的可能值触发car。有没有办法用case积木做到这一点,还是应该尝试大量if积木?

7
在Rails 4中添加参考列迁移
用户有很多上传。我想在uploads表中添加引用的列user。迁移应该是什么样? 这就是我所拥有的。我不确定我应该使用(1):user_id, :int还是(2):user, :references。我什至不确定(2)是否有效。只是尝试以“轨道”方式进行操作。 class AddUserToUploads < ActiveRecord::Migration def change add_column :uploads, :user_id, :integer end end 除Rails 3外的相关问题。Rails 3迁移:是否添加参考列?

8
Ruby on Rails生成模型field:type-field:type的选项是什么?
我试图生成一个新模型,却忘记了引用另一个模型ID的语法。我自己检查一下,但是在我所有的Ruby on Rails文档链接中,我还没有弄清楚如何找到确定的源。 $ rails g model Item name:string description:text(这里是reference:product或references:product)。但是更好的问题是,将来我在哪里或如何轻松地寻找这种愚蠢? 注意:我已经学到了很难的方法,如果我输错了这些选项之一并运行迁移,那么Ruby on Rails将会完全破坏我的数据库...并且rake db:rollback无能为力。我敢肯定,我只是不了解某些东西,但是直到我明白了……返回的“详细”信息rails g model仍然让我抓不住……

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.