db“HAVE”中的表格是否为复数?

时间:2014-05-25 13:27:41

标签: ruby-on-rails

我想在我的仪表板应用程序中显示Snort IPS事件,这些事件通过barnyard2写入数据库。我要扔rails for zombies并且他们说要从数据库中的表中访问信息,表应该是复数,并且模型是单数的。然后,您希望IPS事件的表格为events而不是event

Barnyard2附带了create_postgres架构脚本。下面是脚本创建的表。它们都是单数。

csdashboard=# \dt
                List of relations
 Schema |       Name        | Type  |    Owner    
--------+-------------------+-------+-------------
 public | data              | table | csdashboard
 public | detail            | table | csdashboard
 public | encoding          | table | csdashboard
 public | event             | table | csdashboard
 public | icmphdr           | table | csdashboard
 public | iphdr             | table | csdashboard
 public | opt               | table | csdashboard
 public | reference         | table | csdashboard
 public | reference_system  | table | csdashboard
 public | schema            | table | csdashboard
 public | sensor            | table | csdashboard
 public | sig_class         | table | csdashboard
 public | sig_reference     | table | csdashboard
 public | signature         | table | csdashboard
 public | tcphdr            | table | csdashboard
 public | udphdr            | table | csdashboard

我不需要或希望我的应用程序在这些表格中输入任何内容,只需找到并显示信息。

我的问题是;

  1. 我是否需要为每个表创建一个模型,我将从中获取信息?

  2. 由于它们应该是复数,这会产生问题吗?

2 个答案:

答案 0 :(得分:2)

您不必坚持所有惯例,并且有一种简单的方法可以改变这一约定。 You can set table name in your model

class Event < ActiveRecord::Base
  self.table_name = 'event'
end

答案 1 :(得分:1)

是。是。

每张桌子都需要一个模型。没有它,你会遇到ActiveRecord的大问题。 如果您的表格名称不是您的模型的复数,再次使用ActiveRecord,您还会遇到其他一些问题。