Questions tagged «ruby-on-rails»

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

5
Rails会议的当前做法
是否有人对Rails和会话有“最佳实践”技巧?Rails 3的默认会话类型仍然是CookieStore,对吗?我使用SqlSessionStore已有一段时间,并且效果很好,但是我可能会改用CookieStore来代替它。 使用CookieStore获取敏感信息(即使是含盐信息)还是不是一个好主意,还是更好地存储在数据库中?

14
为什么我不能使用RVM在Lion上安装Rails?
我在尝试使用RVM在OS X Lion上安装Rails时遇到问题。 到目前为止,我已经执行了以下操作: 已安装Mac OS X Lion版本10.7(内部版本11A459e)。 已安装XCode 4.1 Developer Preview 5。 已安装RVM。 使用命令通过RVM安装了1.8.7版本的Ruby rvm install 1.8.7。注意:我需要使用1.8.7而不是1.9.2。 使用命令切换到1.8.7版本的Ruby rvm 1.8.7。 使用命令创建了一个新的gemset rvm gemset create rails3。 使用命令切换到新的gemset rvm use 1.8.7@rails3。 要安装Rails,我运行了命令,gem install rails但是出现以下错误: /Users/m/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/timeout.rb:60:[BUG]分段错误 尝试运行任何gem命令时也会发生相同的错误,因此我认为Rails并不是真正的问题。 从下面的链接来看,我似乎并不是唯一遇到此问题的人: http://twitter.com/#!/pingles/status/66261101351927809 和https://github.com/carlhuda/bundler/issues/1058

5
Rails / lib模块和
我正在为open_flash_chart插件编写自定义包装。它已放入其中,/lib并作为模块加载到中ApplicationController。 但是,我有一些类层次结构或smth问题。 我可以从任何控制器访问的open_flash_chart功能OpenFlashChart,Line等等 但是,在/lib模块的类中,它不起作用! 有任何想法吗?


10
Rails:空值顺序最后
在我的Rails应用程序中,我遇到了几次想了解其他人如何解决的问题: 我有某些值是可选的记录,因此某些记录具有值,而某些记录为该列为null。 如果按该列在某些数据库上排序,则空值将首先排序,而在某些数据库上,空数将最后排序。 例如,我有可能属于或不属于某个收藏集的照片,即有些照片在哪里collection_id=nil,有些在哪里collection_id=1等等。 如果这样做的Photo.order('collection_id desc)话,那么在SQLite上我最后得到的是空值,而在PostgreSQL上我首先得到的是空值。 有没有一种很好的,标准的Rails方法来处理此问题并在任何数据库中获得一致的性能?

6
检查记录是否刚刚被破坏
所以有 record.new_record? 检查是否有新东西 我需要检查是否有东西出路。 record = some_magic record.destroy record.is_destroyed? # => true 这样的事情。我知道销毁会冻结对象,因此冻结吗?这类作品,但是此任务有明确的内容吗?

6
如何在不运行rake spec的情况下为Rails rspec测试准备测试数据库?
经过大量的故障排除后,我发现我需要先运行rake spec一次(可以使用control-c中止),然后才能直接运行rspec(例如,在我们的部分规格上)。我们正在运行Rails 3.0.7和RSpec 2.5.0。 显然,rake正在运行一些重要的数据库设置任务/代码(我们在根级别Rails Rakefile和其他地方可能有自定义代码)。 如何在不运行的情况下运行rake测试数据库设置任务/代码rake spec? 除了能够在一个文件子集上运行rspec之外,我还使用specjour将我们的规范分布在多个内核上(尚未成功在整个LAN上传播它们),但是我看到的行为与运行rspec相同直接:我需要rake spec在specjour工作之前在每个测试数据库(假设有两个内核)上运行: rake spec TEST_ENV_NUMBER=1 control-c (after tests start) rake spec TEST_ENV_NUMBER=2 control-c (after tests start) specjour 注意:我的config / database.yml具有用于测试的条目(对于并行测试gem来说很常见): test: adapter: postgresql encoding: unicode database: test<%=ENV['TEST_ENV_NUMBER']%> username: user password: parallel_tests似乎正确设置了它的数据库,但是我们的许多规范都失败了。 我还应该提到,运行specjour prepare会导致Postgres记录无法找到数据库的错误,但是会创建它们(没有表)。在随后的运行中,不会记录任何错误,但是也不会创建表。我的整个问题很可能仅是中的错误prepare,因此我在github上进行了报告。 我认为可以通过Specjour::Configuration.prepare在.specjour / hooks.rb中进行设置来在每个specjour测试数据库上运行任意代码,因此,如果有任何我需要运行的rake任务或其他代码,则可以在其中运行。

2
如何在Ruby on Rails的form_for中使用hidden_​​field?
我读过这篇文章,但是我对RoR还是陌生的,因此在理解它时遇到了一些麻烦。我正在使用表单创建新的请求记录,并且我需要发送的所有变量已经存在。这是我需要发送的数据(在do循环中): :user_id => w[:requesteeID] :requesteeName => current_user.name :requesteeEmail => current_user.email :info => e 这是我的表格,目前可以使用,但只发送所有内容的NULL值: <% form_for(:request, :url => requests_path) do |f| %> <div class="actions"> <%= f.submit e %> </div> <% end %> 如何使用hidden_​​fields发送已经拥有的数据?谢谢阅读。


9
Bundler:在与gem捆绑安装期间,找不到具有可执行捆绑(Gem :: GemNotFoundException)的gem bundler(> = 0.a)
我正在执行以下脚本: gem install rdoc --no-document gem install bundle bundle 输出: + gem install rdoc --no-document Successfully installed rdoc-6.1.1 1 gem installed + gem install bundle Successfully installed bundle-0.0.1 Parsing documentation for bundle-0.0.1 Done installing documentation for bundle after 2 seconds 1 gem installed 1 gem installed + bundle install /usr/lib/ruby/2.5.0/rubygems.rb:289:in …

7
哈希删除除特定键以外的所有键
我想从哈希中删除除给定键以外的所有键。 例如: { "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] } 我想删除除“名字”和/或“地址”之外的所有内容 谢谢



7
在Ruby on Rails中的控制器之间重用代码的最佳实践
我想分享一些控制器方法。在轨道上的红宝石中执行此操作的最佳实践是什么?我应该创建控制器扩展的抽象类,还是应该创建模块并将其添加到每个控制器中?以下是我要分享的控制器方法: def driving_directions @address_to = params[:address_to] @address_from = params[:address_from] @map_center = params[:map_center_start] # if we were not given a center point to start our map on # let's create one. if !@map_center && @address_to @map_center = GeoKit::Geocoders::MultiGeocoder.geocode(@address_to).ll elsif !@map_center && @address_from @map_center = GeoKit::Geocoders::MultiGeocoder.geocode(@address_from).ll end end def printer_friendly starting_point = …

19
捆绑器为什么不安装JSON gem?
尝试运行时出现以下错误cap production deploy。 DEBUG [dc362284] Bundler::GemNotFound: Could not find json-1.8.1.gem for installation DEBUG [dc362284] An error occurred while installing json (1.8.1), and Bundler cannot continue. DEBUG [dc362284] Make sure that `gem install json -v '1.8.1'` succeeds before bundling. 可能需要注意的是,此部署正在运行,而不是我升级到Ruby 2.1.0来消除编码错误。我在本地升级,效果很好。我跑rvm install 2.1.0,并rvm use 2.1.0随后改变了我的.ruby-version文件,以反映该红宝石升级。 该bundle install命令在本地工作,但是当我SSH到目标服务器并运行此命令时,会产生与上述相同的错误。 如果我跑步,gem list我可以在宝石列表中看到它。 ... jquery-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.