【问题标题】:Where is "class Session < ActiveRecord::Base" in rails 3rails 3中的“class Session < ActiveRecord::Base”在哪里
【发布时间】:2020-07-24 13:05:30
【问题描述】:

rails 3 数据库中有会话表和会话控制器。但是没有会话模型。如果我们想实现我们自己的会话时间控制,我们是否需要手动创建会话类(session.rb。不是rails generate model Session)? Here 是关于在会话类中设置会话时间的帖子。非常感谢。

【问题讨论】:

    标签: ruby-on-rails ruby session


    【解决方案1】:

    您的数据库表确实不需要模型。您可以在数据库中拥有正在执行的表可能是一些辅助任务,并且您可以跳过模型。

    【讨论】:

    • 对于会话本身,我知道不需要模型。但是如果我们想实现会话时间控制,我们需要在会话模型中定义一些现在不存在的方法。这就是为什么我要问如何创建这个模型。显然我们不能使用 rails generate 来创建它,因为表已经创建了。
    • 在这种情况下,您实际上可以使用“rails g model session”来创建会话模型......它不会影响您在数据库中的内容。或者,您也可以手动创建文件..
    【解决方案2】:

    您可以在项目app/models/session.rb 中手动创建文件并写入

    # app/models/session.rb
    class Session < ActiveRecord::Base
    end
    
    OR
    
    # With a different model name
    class SessionManager < ActiveRecord::Base
      self.table_name = :sessions
    end
    

    之后你可以尝试任何查询,例如Session.count - 它将查询会话表

    注意: Rails 生成器rails g model 只是一种生成文件的简单方法,它与使用文件资源管理器手动创建每个文件没有什么不同

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 2011-01-20
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      相关资源
      最近更新 更多