【问题标题】:How do I stop ActiveRecord looking for a table?如何停止 ActiveRecord 查找表?
【发布时间】:2023-03-08 11:14:01
【问题描述】:

我正在尝试创建一个没有表格的名为“搜索”的 ActiveRecord 模型。当我执行@search = Search.new 时,我不断收到此错误。

sql::Error: 表 'searchdemo_development.tablelesses' 不存在:SELECT * FROM tablelesses

我正在使用此评论中的想法:Rails model without database。我在做基本操作时也遇到了同样的错误:

class Search < ActiveRecord::Base

end

如何让 ActiveRecord 停止查找表?

【问题讨论】:

    标签: ruby-on-rails activerecord


    【解决方案1】:

    我能想到一些你可能想要做这样的事情的原因。也许您想在 ActiveRecord 上利用一些与数据库无关的方法,或者您想将您的对象传递给期望的对象和 ActiveRecord 实例。没有更多信息,无法判断此处使用 AR 的选择是正确还是错误。

    无论如何,如果你想继续走这条路……

    看看这个 Railscast http://railscasts.com/episodes/121-non-active-record-model

    并且还检查了这个宝石: http://github.com/kennethkalmer/activerecord-tableless-models/tree/master

    【讨论】:

    【解决方案2】:

    以主的名义,您为什么想要一个没有表的活动记录模型?活动记录模型的目的是与数据库进行通信。我假设没有 db 表就不可能有一个活动记录模型。

    也许你想要一堂普通的课?

    class Search
      # your methods here
    end
    

    【讨论】:

    • 我同意 ActiveRecord 模式在没有表的情况下使用似乎很奇怪,但实际上 Rails 的 ActiveRecord 实现提供的验证对模型数据仍然有用,而您可能不会想坚持。这当然不是不可能的。
    • 如果你想要验证,有一个与 Rails 或 Active Record 无关的 gem。我不记得名字了,但我猜你会在 ruby​​forge 上找到它。或者你可以自己写; ) stackoverflow.com/questions/775976
    • 哦,希望这会在 Rails 3.0 中使用 ActiveModel 有所改变。 include ActiveModel::Validations,吃午饭。 =D
    猜你喜欢
    • 1970-01-01
    • 2015-02-16
    • 2010-09-10
    • 2022-08-11
    • 2017-01-23
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多