jjzjj

activemodel

全部标签

ruby-on-rails - 获取 ActiveRecord 对象中的属性类型

我想知道是否有可能以编程方式获取类型(如AR所知-例如在迁移脚本和数据库中)(我知道数据存在于某处)。比如我可以处理所有的属性名:ar.attribute_names.each{|name|putsname}.attributes只返回名称到它们当前值的映射(例如,如果字段未设置,则没有类型信息)。一些地方我看到它有类型信息:在脚本/控制台中,输入AR实体的名称:>>Driver=>Driver(id:integer,name:string,created_at:datetime,updated_at:datetime)它清楚地知道类型。此外,还有.column_for_attribu

ruby - 是否可以将 ActiveModel 与 Sinatra 一起使用?

我想在我的Sinatra模型中使用ActiveModel来使用mongodb的Ruby驱动程序。这是一个简单的练习还是会有问题? 最佳答案 要将MongoDB与ORM一起使用,您可能需要考虑使用Mongomapper或者Mongoid.他们会为您提供像ORM这样的ActiveRecord。 关于ruby-是否可以将ActiveModel与Sinatra一起使用?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow

ruby-on-rails - Rails 3 和 Mongoid : Embedded documents validation

因此,我在嵌入式文档中遇到了一些用户身份验证问题。我有两个文档,一个嵌入另一个。一个企业有很多成员。模型看起来像这样:classMemberincludeMongoid::Documentfield:username,type:Stringfield:password,type:Stringembedded_in:businessvalidates:username,:presence=>true,:uniqueness=>true,:length=>5..60endclassBusinessincludeMongoid::Documentfield:name,type:Stringe

ruby-on-rails - 无法激活activemodel-3.2.15,因为activesupport-4.0.1冲突

尝试运行我的rspec测试(任何或所有)时出现此错误:Unabletoactivateactivemodel-3.2.15,becauseactivesupport-4.0.1conflictswithactivesupport(=3.2.15),builder-3.1.4conflictswithbuilder(~>3.0.0)我的Gemfile有:source'https://rubygems.org'rails_version='~>4.0.0.rc2'gem'activerecord',rails_versiongem'actionpack',rails_versiongem'

ruby-on-rails-3 - 如何使用 ActiveModel::Serializers 为同一模型实现多个不同的序列化器?

假设您正在Rails中实现一个RESTAPI。提供集合时,您可能只想包含几个属性:/people但是在提供单一资源时,您希望包含所有属性:/people/1我不知道如何使用ActiveModel::Serializers来做到这一点,因为这些示例都使用了为每个模型定义一个序列化器(使用标准命名约定)并让AMS在Controller中自动使用正确的模式你这样做:renderjson:@people或:renderjson:@person 最佳答案 您可以为同一模型拥有多个序列化器,例如classSimplePersonSerializ

ruby-on-rails - Ruby on Rails ActiveModel::MassAssignmentSecurity::错误

我正在尝试创建line_items但出现此错误app/controllers/line_items_controller.rb:52:在“创建”中哪些引用了这一行Can'tmass-assignprotectedattributes:product@line_item=@cart.line_items.build(:product=>product)完整代码如下classProduct'title'has_many:line_itemsbefore_destroy:ensure_not_referenced_by_any_line_item#morecodehere...private

ruby-on-rails - ActiveModel::Serializer belongs_to 属性未显示在 json 响应中

我不太确定为什么这不起作用,但我有以下序列化程序:classExternalAccountSerializerAPI返回以下内容:{"external_account":{"id":3,"account_name":"CompanyInc.","type":"Externalservice"}}正在返回外部帐户,但没有返回用户。任何想法为什么会这样?我怎样才能确保显示它? 最佳答案 我相信你必须在你的属性中包含:user:attributes:id,:account_name,:type,:user然后:defuserUserSer

ruby-on-rails - 使用 ActiveModel::Validations 验证嵌套模型

我的应用程序使用带有ActiveModel::Validations的纯Ruby类,没有实现ActiveRecord:classCarinclude::ActiveModel::Validationsattr_accessor:engineendclassEngineinclude::ActiveModel::Validationsattr_accessor:cylindersvalidates_presence_of:cylindersend我希望Car检查ActiveModel::Validations的嵌套属性,在本例中为engine。car=Car.newcar.engine=

ruby-on-rails - 从 ActiveRecord/ActiveModel JSON 输出中过滤字段(神奇!)

我想在输出JSON时从ActiveRecord/ActiveModel类中过滤掉特定字段。最直接的方法就是覆盖as_json,可能像这样:defas_json(options=nil)options||={}super(options.deep_merge({:except=>filter_attributes}))enddeffilter_attributes[:password_digest,:some_attribute]end这行得通,但它有点冗长,并且不会很快变干。我认为只用神奇的类方法声明过滤属性会很好。例如:classUserself.class.filter_attri

ruby-on-rails - 具有 has_and_belongs_to_many 的 ActiveModel 序列化程序

我有一个名为事件的模型。事件has_and_belongs_to_many:event_sub_categories和EventSubCategoryhas_and_belongs_to_many:events。我有以下操作:defindex@events=Event.where(begins_at:DateTime.now.beginning_of_day..1.week.from_now).group_by{|e|e.begins_at.beginning_of_day}.to_a.to_jsonrenderjson:@eventsend该操作完全按照需要返回数据,除了一个问题,它