Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails如何将虚拟视图映射到模型 class CashOrderStatus ActiveRecord::Base set_table_name "order_statuses" belongs_to:cash_order end_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails rails如何将虚拟视图映射到模型 class CashOrderStatus ActiveRecord::Base set_table_name "order_statuses" belongs_to:cash_order end

Ruby on rails rails如何将虚拟视图映射到模型 class CashOrderStatus ActiveRecord::Base set_table_name "order_statuses" belongs_to:cash_order end,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,通常db需要一个表cash\u order\u status来映射这个模型,但现在我想 将此模型映射到特定的sql视图,如 class CashOrderStatus < ActiveRecord::Base belongs_to:cash_order end select*from order\u status,其中cash\u order\u id不为null CashOrderStatus rails是否提供了一些方法来实现这一点有多种方法可以满足您的需求: 在CashOrd

通常db需要一个表cash\u order\u status来映射这个模型,但现在我想

将此模型映射到特定的sql视图,如

class CashOrderStatus < ActiveRecord::Base
  belongs_to:cash_order
end
select*from order\u status,其中cash\u order\u id不为null CashOrderStatus

rails是否提供了一些方法来实现这一点

有多种方法可以满足您的需求:

  • 在CashOrderStatus模型中,可以设置表名以覆盖默认ORM映射:
  • 您可以实现STI(单表继承)功能,其中在数据库表“order_Status”中还有一列:type,它将保存派生模型类名(在本例中,CashOrderStatus
  • 因此,您的模型将如下所示:

    class CashOrderStatus > ActiveRecord::Base
      set_table_name "order_statuses"
    
      belongs_to:cash_order
    end
    
    OrderStaus模型将从AR::基类派生。试试看

    注意:对于类继承符号表示抱歉。它应该是。我的stackoverflow帐户中存在格式问题,因此我将其设置为:-)

    class CashOrderStatus > ActiveRecord::Base
      set_table_name "order_statuses"
    
      belongs_to:cash_order
    end
    
    class CashOrderStatus > OrderStatus
      set_table_name "order_statuses"
    
      belongs_to:cash_order
    end