标签: datamapper

从ActiveRecord重构到DataMapper

您是否已从ActiveRecord重构为DataMapper模式?什么条件促使开关?我主要对基于Web的应用程序感兴趣,但想知道在任何环境中这种移动所带来的挑战.

refactoring activerecord design-patterns datamapper

4
推荐指数
1
解决办法
2253
查看次数

Ruby Datamapper存储以科学计数法显示的小数

我有一个模型,称为交付:

property :id,           Serial
property :created_at,   DateTime
property :updated_at,   DateTime

property :price, BigDecimal,    :precision => 10, :scale => 2
Run Code Online (Sandbox Code Playgroud)

交付有一个价格,在SQLite中查看的价格是5.49,6.95,4.95等

在输出中显示此信息(以haml编码)时,来自delivery.price的值显示为0.695E1,0.495E1等

知道为什么他们以这种格式显示,以及如何最好地正确显示它们.

所有帮助表示赞赏!

ruby haml datamapper sinatra

4
推荐指数
1
解决办法
653
查看次数

在基于DataMapper模板的Rails 3项目中缺少`test` rake任务

我怎样才能恢复测试任务?

背景故事: 我没有从默认的新rails项目开始.我正在使用带有dm-rails的datamapper并使用他们的boodstrap命令:

rails new project_name -m http://datamapper.org/templates/rails.rb
Run Code Online (Sandbox Code Playgroud)

我的Rakefile如下:

require File.expand_path('../config/application', __FILE__)
require 'rake'

MyAppName::Application.load_tasks
Run Code Online (Sandbox Code Playgroud)

rake datamapper ruby-on-rails-3

4
推荐指数
1
解决办法
493
查看次数

.NET Native GUID转换

我有一个外部数据库,正在向我提供信息.一个将其数据保存为本机GUID格式,而我的其他数据源提供标准.NET GUID格式字符串.

有没有一种整洁的方式从Native GUID转换为GUID结构

还有任何验证位来确定提供的值是否为Native GUID?如果有的话我似乎找不到任何东西.

区别如下:

typedef struct _GUID 
{  
   DWORD Data1;  
   WORD Data2;  
   WORD Data3;  
   BYTE Data4[8];
} GUID;
Run Code Online (Sandbox Code Playgroud)

Data1,Data2和Data3的字节顺序相反,但Data4保持不变,请参阅http://en.wikipedia.org/wiki/Globally_unique_identifier了解更多信息

.net vb.net guid datamapper

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

Datamapper:报告我无法销毁记录的原因

我正在使用datamapper和dm-contraints设置我的数据库模型.我有两个模型有很多关系,但是当我试图销毁一个时,我得到的唯一信息是false.

是否有可能获得datamapper给我更多的反馈,哪个关系正是导致问题?

ruby datamapper ruby-datamapper

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

如何使用自定义方法扩展DataMapper :: Resource

我有以下代码:

module DataMapper
  module Resource

   @@page_size = 25

   attr_accessor :current_page  
   attr_accessor :next_page
   attr_accessor :prev_page

  def first_page?
    @prev_page
  end

  def last_page?
    @next_page      
 end

  def self.paginate(page)
    if(page && page.to_i > 0)
      @current_page = page.to_i - 1
    else
      @current_page = 0
    end

    entites = self.all(:offset => @current_page  * @@page_size, :limit => @@page_size + 1)

    if @current_page > 0
      @prev_page = @current_page
    end

    if entites.size == @@page_size + 1
      entites.pop
      @next_page = (@current_page || 1) + 2
    end

    entites
  end
end
Run Code Online (Sandbox Code Playgroud)

结束

然后我打电话给#paginate:

@photos …
Run Code Online (Sandbox Code Playgroud)

ruby jruby datamapper

3
推荐指数
1
解决办法
938
查看次数

验证DataMapper中组合字段的唯一性

我希望能够在我的数据库中放置条目,其中制造商将被多次代表但不是制造商和型号的相同组合.所以"索尼(制造商),电视(型号)"还可以"索尼(制造商),OtherTv(型号)",但第三个条目"索尼(制造商),电视(型号)"自制造商和型号组合以来并不合适不是唯一的.我尝试了:key => true验证,但似乎没有用.而且我不能像validates_uniqueness_of :manufacturer AND :model我猜的那样做.你是怎么做到的?

class Tvs
  include DataMapper::Resource

  property :id,           Serial
  property :manufacturer, String, :key => true
  property :model,        String, :key => true

  validates_uniqueness_of :
end
Run Code Online (Sandbox Code Playgroud)

ruby validation datamapper sinatra

3
推荐指数
1
解决办法
1323
查看次数

Doctrine2最佳实践,实体应该使用服务吗?

我不久前问了一个类似的问题:使用数据映射器模式,实体(域对象)应该知道Mapper吗?但是,它是通用的,我真的很感兴趣如何用Doctrine2专门完成一些事情.

这里有一个简单的例子模型:每个Thing可以有VoteUser,一个User可投一个以上Vote,但只有最后Vote计数.因为其他数据(Msssage等)与之相关Vote,当Vote放置第二个数据时原始Vote不能只是更新,需要更换.

目前Thing有这个功能:

public function addVote($vote)
{
  $vote->entity = $this;
}
Run Code Online (Sandbox Code Playgroud)

Vote负责建立关系:

public function setThing(Model_Thing $thing)
{
  $this->thing = $thing;
  $thing->votes[] = $this;
} 
Run Code Online (Sandbox Code Playgroud)

在我看来,确保User只有最后一次Vote计数是Thing应该确保的东西,而不是一些服务层.

所以要在模型中保留它,新Thing功能:

public function addVote($vote)
{
  foreach($this->votes as $v){
    if($v->user === $vote->user){
      //remove vote
    }
  }
  $vote->entity = …
Run Code Online (Sandbox Code Playgroud)

datamapper service-layer doctrine-orm

3
推荐指数
2
解决办法
2357
查看次数

找不到child_model(NameError)

我无法确定为什么我在这里收到名称错误.我是DataMapper的新手,但尝试关联.任何帮助表示赞赏.

用户:

class User
  include DataMapper::Resource

  property :id,            Serial, :key => true
  property :first_name,    String
  property :last_name,     String
  property :company,       String
  property :city,          String
  property :country,       String
  property :mobile_number, Integer
  property :email_address, String
  property :shahash,       String
  property :isRegistered,  Boolean

  belongs_to :event, :required => true
end

DataMapper.auto_upgrade!
Run Code Online (Sandbox Code Playgroud)

事件:

class Event
  include DataMapper::Resource

  property :id,          Serial, :key => true
  property :name,        String
  property :occuring,    DateTime

  has n, :user
end

DataMapper.auto_upgrade!
Run Code Online (Sandbox Code Playgroud)

ruby datamapper sinatra

3
推荐指数
1
解决办法
1381
查看次数

Heroku和Datamapper问题

我可以在Heroku上启动一个基本的应用程序,显示带有'/'的消息......工作得很好.但是,每当我尝试使用datamapper添加sqlite时,事情就会崩溃.

要查看我的应用程序结构,请查看github上的项目.我保持代码相当简陋.

在heroku的日志中我得到:

2011-06-26T21:28:36+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/dm-core-1.1.0/lib/dm-core/adapters.rb:163:in `require': no such file to load -- dm-postgres-adapter (LoadError)
Run Code Online (Sandbox Code Playgroud)

关于这一点的是我没有使用postgres,所以我很困惑为什么这么说.

ruby sqlite datamapper heroku sinatra

3
推荐指数
1
解决办法
2683
查看次数