标签: ruby-on-rails-2

ActiveRecord ::没有表的基础

这出现了一段时间(在db中没有相应列的rails模型属性)但是看起来没有提到所提到的Rails插件(http://agilewebdevelopment.com/plugins/activerecord_base_without_table).有没有办法用ActiveRecord这样做?

如果没有,有没有办法在不使用ActiveRecord的情况下获得ActiveRecord验证规则?

当然,ActiveRecord希望表存在.

activerecord ruby-on-rails-2

22
推荐指数
4
解决办法
2万
查看次数

Rails:在时区中获得#beginning_of_day

我有一个rails应用程序的默认时区设置.和Date对象的一个​​实例.

如何让Date#beginning_of_day返回指定时区内的一天的开头,而不是我当地的时区.

是否有其他方法可以在给定日期的指定时区内开始白天时间?

date = Date.new(2014,10,29)

zone = ActiveSupport::TimeZone.new('CET')
date.foo(zone) # should return "Wed, 29 Oct 2014 00:00:00 CET +01:00"

zone = ActiveSupport::TimeZone.new('UTC')
date.foo(zone) # should return "Wed, 29 Oct 2014 00:00:00 UTC +00:00"
Run Code Online (Sandbox Code Playgroud)

timezone ruby-on-rails date activesupport ruby-on-rails-2

21
推荐指数
4
解决办法
3万
查看次数

从Rails 2.3.8升级到4.0

我在Rails 2.3.8上运行一个应用程序.我打算将它升级到Rails 4.0(在RC中).对我来说最简单的方法是什么?我是否需要先升级到Rails 3.x?

注意:在我目前的实施中,我使用的是椋鸟和雪貂; 作为升级的一部分,我也在考虑转向sidekiq太阳黑子

ruby-on-rails ruby-on-rails-2 ruby-on-rails-4

21
推荐指数
1
解决办法
8912
查看次数

在Rails 2应用程序中使用ssl_requirement强制SSL

我有一个需要在SSL下运行的Rails应用程序.我尝试了ssl_requirement,但似乎我必须输入每个控制器中的所有操作.

是否有任何方法可以在应用程序控制器中使用ssl_requirement添加before_filter,以便当用户请求在http时,应用程序将自动重定向到https?

谢谢大家.:)

ssl ruby-on-rails ruby-on-rails-2

20
推荐指数
2
解决办法
1万
查看次数

ActiveRecord Count计算Rails中group by返回的行数

我环顾四周,找不到任何答案.涉及的所有答案都没有使用GROUP BY.

背景: 我有一个paginator,它将为ActiveRecord.find提供选项.它添加了:limit和:offset选项并执行查询.我还需要做的是计算记录总数(减去限制),但有时查询包含:group选项,ActiveRecord.count尝试返回GROUP BY返回的所有行及其每个计数.我在Rails 2.3.5中这样做.

我想要的是ActiveRecord.count返回GROUP BY返回的行数.

下面是一些示例代码,用于演示此实例(用于查找所有标记并按照标记的帖子数量排序):

options = { :select => 'tags.*, COUNT(*) AS post_count',
            :joins => 'INNER JOIN posts_tags',   #Join table for 'posts' and 'tags'
            :group => 'tags.id',
            :order => 'post_count DESC' }

@count = Tag.count(options)

options = options.merge { :offset => (page - 1) * per_page, :limit => per_page }

@items = Tag.find(options)
Run Code Online (Sandbox Code Playgroud)

使用:select选项,Tag.count生成以下SQL:

SELECT count(tags.*, COUNT(*) AS post_count) AS count_tags_all_count_all_as_post_count, tags.id AS tags_id FROM `tags`  INNER JOIN posts_tags  GROUP BY tags.id  ORDER …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails ruby-on-rails-2

19
推荐指数
3
解决办法
3万
查看次数

ApplicationController的副本已从模块树中删除但仍处于活动状态

每当两个并发HTTP请求转到我的Rails应用程序时,第二个总是返回以下错误:

ApplicationController的副本已从模块树中删除但仍处于活动状态!

从那里它给出了一个无益的堆栈跟踪效果"我们经历了标准服务器的东西,在ApplicationController上运行了你的第一个before_filter (我检查过;它只是先运行哪个过滤器) ",然后提供以下内容:

/home/matchu/rails/torch/vendor/rails/activesupport/lib/active_support/dependencies.rb:414:in"load_missing_constant'

/home/matchu/rails/torch/vendor/rails/activesupport/lib/active_support/dependencies.rb:96:in`const_missing'

我假设是一个通用的回应,并没有真正说太多.

谷歌似乎告诉我,开发Rails引擎的人会遇到这种情况,但我不这样做.我所做的就是将我的Rails应用程序从2.2(2.1?)升级到2.3.

导致此错误的可能原因是什么,以及如何跟踪实际发生的情况?我知道这个问题很模糊,所以其他任何信息都有帮助吗?

更重要的是:我刚刚尝试在"生产"环境中进行测试,并且错误似乎不会持续存在.那么这只会影响发展吗?我不需要太担心吗?

ruby rubygems ruby-on-rails-plugins ruby-on-rails-2

17
推荐指数
1
解决办法
7715
查看次数

ActiveRecord :: Base上的alias_method导致NameError

我有一个直接继承的模型ActiveResource::Base,我正在尝试运行alias_method记录表中的大多数列,但结果是一个NameError:

NameError:未定义的方法address_line_1' for class LeadImport :: Base'

但我可以访问该属性:

LeadImport::Base.new.address_line_1 #=> nil (not error)
Run Code Online (Sandbox Code Playgroud)

我的类有一个名为table的列address_line_1,所以我没有看到问题所在.

class LeadImport::Base < ActiveRecord::Base
    alias_method :address_1, :address_line_1
end
Run Code Online (Sandbox Code Playgroud)

规范:Ruby 1.8.7,Rails 2.3.8

ruby ruby-on-rails ruby-on-rails-2

17
推荐指数
1
解决办法
2474
查看次数

如何修补在Rails中自动加载的代码?

我正在修补一个Rails引擎,例如:

SomeClass.class_eval do
  # ...
end
Run Code Online (Sandbox Code Playgroud)

我第一次访问网站时,至少在开发模式下,它可以工作,但第二次就像我的补丁从未存在过.我认为它是Rails自动重新加载引擎(安装在vendor /中)而不是重新加载我的代码.这是Rails 2.3.

任何想法如何做到这样我的代码也被重新加载?

monkeypatching ruby-on-rails ruby-on-rails-2

15
推荐指数
4
解决办法
8535
查看次数

将额外的运行时属性添加到activerecord对象

我有一个代理模型,它从底层数据库表中获取其属性.但是对于一个特定的控制器操作,我想在将代理记录传递给视图之前向代理记录添加一些"临时"属性.

这可能吗?

ruby-on-rails-2

15
推荐指数
1
解决办法
2861
查看次数

为什么Rails不会在每个请求上刷新类(尽管配置)?

我最近每次更改代码时都开始重新启动开发服务器.我的development.rb文件仍然有这一行:

config.cache_classes = false

我尝试使用调试器验证此值是否已停留.为此,我将配置设置为environment.rb中的全局变量:

$my_initializer = Rails::Initializer.run do |config|
  ...
end

然后我debugger在我的一个控制器中放了一条线,所以我可以这样做:

(rdb:2) $my_initializer.configuration.cache_classes
false

这样就消除了将价值cache_classes设定在true其他地方的可能性.我已经尝试过使用Mongrel和WEBrick,但它仍然会发生.

还有什么可能导致Rails不能在每次请求时重新加载我的代码?

我正在运行:Mongrel 1.1.5
WEBrick 1.3.1
Rails 2.3.8
Ruby 1.8.7 p253

编辑:在@Daemin的建议下,当我将它们保存在我的文本编辑器(Textmate)中时,我检查了我的文件的mtime实际上是否正在更新

merced:controllers lance$ ls -l people_controller.rb 
-rwxr-xr-x  1 lance  staff  2153 Act 10 18:01 people_controller.rb

然后我做了一个更改并保存了文件:

merced:controllers lance$ ls -l people_controller.rb 
-rwxr-xr-x@ 1 lance  staff  2163 Oct 11 12:03 people_controller.rb

所以这不是mtimes的问题.

ruby-on-rails ruby-on-rails-2

14
推荐指数
3
解决办法
4209
查看次数