【问题标题】:Model naming convention for RailsRails 的模型命名约定
【发布时间】:2013-06-14 17:50:47
【问题描述】:

Override Rails controller routing with capital letters in model name

我遵循了那个问题和答案,但它对我没有帮助。

我需要从已经存在的表 BBOrders 创建一个模型。

什么是 .rb 文件,类名,我将如何在控制台中访问它,我是否必须在类中添加任何内容。

我现在拥有的是

b_b_order.rb

 class BBOrder < ActiveRecord::Base 
   set_table_name "BBorders"
   set_primary_key "orderID"
end

当我在控制台中调用 BBOrder.all 时,我得到了未初始化的常量 BBOrder。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 model


    【解决方案1】:
    'BBOrder'.underscore #=> 'bb_order'
    

    这意味着你的文件应该命名为bb_order.rb

    在您的班级内,您需要将 set_table_nameset_primary_key 更改为以下内容:

    bb_order.rb

    class BBOrder < ActiveRecord::Base 
      self.table_name =  "BBorders"
      self.primary_key =  "orderID"
    end
    

    【讨论】:

    • 做了所有这些事情。分类正确返回,但我仍然没有得到查询。
    • 解决了这个问题,但是现在当我查询它时,它说 BBOrder Load (1.0 ms) EXEC .... Invalid object name 'bb_orders' 这是我的问题吗与数据库分开?
    • 旁注:我注释掉了两个 self.[],但是当我把它们带回来时,我得到一个不同的错误,说错误的参数数量(1 代表 0)。
    • 我不确定,这完全是一个单独的问题。
    • 乔希,只是一个额外的说明: self.[] 部分正在崩溃。我回到 set_table_name ,它工作得非常好。我之前读过 set_table_name 已被弃用,但在这种情况下不是。我正在使用 FreeTDs 和 TinyTDs,所以也许这就是原因
    猜你喜欢
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 2015-04-15
    相关资源
    最近更新 更多