Tag: 模型

Rails模型中around_create回调的目的是什么?

什么时候是around_create回调代码执行,在什么情况下我们应该使用它?

用sqlite在rails中的布尔值

我仍然是一个仍然使用rails的菜鸟,但我正在遇到一些似乎有些奇怪的东西。 我因此在数据库中为模型添加了一个布尔字段 t.column :admin, :bool, :default => false, :null => false 但是,sqlite3数据库中的值似乎是’t’或’f’ 。 这没关系,但我仍然期望user.admin? 如果值为’f’则返回false。 从下面的控制台会话中可以看出,情况并非如此: >> user = User.first => # >> user.admin? => true >> user.admin = false => false >> user.save => true >> user = User.first => # >> user.admin? => true 这只是sqlite的一些奇怪的问题,还是我没有得到什么?

如何覆盖Rails模型中的列?

我有一个我的数据库表的模型。 我想覆盖该特定表的列名。 我怎么做到这一点。 例如,让我的表被称为DUMMY,它有一个名为col_a列 col_a 20 34 42 23 12 我会做@dummy.col_a 。 现在这个方法应该返回0表示以0结尾的数字,对于其他一切,它应该返回原始值。 我可以通过定义一个新方法来做到这一点,但我想覆盖列名本身。 请帮忙。

在命名空间中的Ruby on Rails模型在控制器中找不到

我是rails的新手,无法弄清楚这个问题…… 我有一个控制器 Admin::Blog::EntriesController 在app / controllers / admin / blog / entries_controller.rb中定义 我有一个名为的模型 Blog::Entry 在app / model / blog / entry.rb中定义 当我尝试从控制器访问我的模型时,我从这一行得到一个”uninitialized constant Admin::Blog::EntriesController::Blog” : @blog_entries = Blog::Entry.find(:all) 显然,它没有正确找到名称空间,这是奇怪的,因为根据我所读到的,我已经使用正确的语法将我的模型放在正确的文件夹中。 关于如何解决这个问题的任何想法? 谢谢

rails,ruby,如何计数和排序,显示最佳结果

想想我在这里有一个简单的问题: 我有一个用户模型和一个post模型。 用户有很多post,post属于用户。 我想按用户计算post总数,并显示post最多的前10位用户。 这是我到目前为止的代码: 控制器: @users = User.all 视图: : ‘user_id’) %> 这会获得每个用户的总post数,但会按用户名排序。 我理解为什么会发生这种情况,但不知道我怎么能改变它来按计数排序。 任何帮助将不胜感激!

你如何在铁轨中模仿“喜欢”?

我有3个模型:用户,对象,喜欢 目前,我有模型:用户有很多对象。 我如何进行建模: 1)用户可以喜欢很多物体 2)一个对象可以有很多喜欢(来自不同的用户) 所以我希望能够做到这样的事情: User.likes =用户喜欢的对象列表 Objects.liked_by =对象喜欢的用户列表 下面的模型肯定是错的…… class User :likes end class Likes < ActiveRecord::Base belongs_to :user belongs_to :object end class Objects :likes end

Rails中的命名空间模型:联合的状态是什么?

从一开始,Rails就遇到了命名空间模型的问题。 随着时间的推移,几乎所有人都放弃了使用它。 我自己包括在内。 随着Rails 2.3的推出,我想了解情况的最新情况。 我想到的具体问题是: 首先,去哪儿好? 表命名,遵循什么规则? 协会,如何以最少的冗长声明他们? 如何命名外键列? 自动要求,如果将模型文件放在与命名空间匹配的子目录中,它是否有效? 或者,如何命名以及放置文件的位置? 生成,模型生成器是否成功且正确地处理名称空间? 一代,脚手架发电机怎么样,包括控制器? 任何不兼容/怪异的人应该注意什么?

Ruby on Rails:全function无表格模型

在搜索无表格模型示例后,我遇到了这个代码,这似乎是关于如何创建一个代码的一般共识。 class Item < ActiveRecord::Base class_inheritable_accessor :columns self.columns = [] def self.column(name, sql_type = nil, default = nil, null = true) columns << ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type.to_s, null) end def all return [] end column :recommendable_type, :string #Other columns, validations and relations etc… end 但是我还希望它能够像模型那样起作用,代表一个对象的集合,这样我就可以做Item.all。 计划是使用文件填充项目,并从文件中提取每个项目的属性。 但是目前如果我做Item.all我会得到一个 Mysql2::Error Table ‘test_dev.items’ doesn’t exist… 错误。

访问has_one关联的属性

我仍然是Rails的新手,所以希望这不是一个愚蠢的问题。 我有两个模型:用户和家务。 用户has_one杂事,Chore属于User class User < ActiveRecord::Base attr_accessible :chore_done, :email, :name, :phone has_one :chore class Chore < ActiveRecord::Base attr_accessible :name, :user_id belongs_to :user 在我的用户索引中,我正在尝试向所有用户显示并显示与他或她相关的杂项。 我这样做是通过将User.all传递给视图并使用.each来遍历每个用户: 不幸的是,我无法访问Chore的name属性。 我收到此错误: nil的未定义方法`name’:NilClass 如果我删除.name属性,它只返回一个指向Chore对象的指针。 我有一种感觉,这与将User.all对象传递给视图然后迭代它有关。 只需在控制台中访问特定的User对象(例如User.find(1)),然后访问user.chore.name就可以了。 1.9.3-p194 :045 > user = User.find(4) User Load (0.2ms) SELECT “users”.* FROM “users” WHERE “users”.”id” = ? LIMIT 1 [[“id”, 4]] => # 1.9.3-p194 […]

如何在模型中对项目数组使用命名范围?

我知道我可以查询基于数组的最新书籍 scope :recent_books, lambda {|since_dt| {:conditions=>{:created_at >= since_dt}}} 但是当我有一个项目数组时如何进行类似的查询,例如,如果我想知道是否有任何记录与[date1,date2,date3等]的数组中的日期匹配,该怎么办? 我认为必须有一个collect / inject / select / map y方法才能做到,但我不确定从哪个读取它们。