我想在我的仪表板应用程序中显示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
我不需要或希望我的应用程序在这些表格中输入任何内容,只需找到并显示信息。
我的问题是;
我是否需要为每个表创建一个模型,我将从中获取信息?
由于它们应该是复数,这会产生问题吗?
答案 0 :(得分:2)
您不必坚持所有惯例,并且有一种简单的方法可以改变这一约定。 You can set table name in your model:
class Event < ActiveRecord::Base
self.table_name = 'event'
end
答案 1 :(得分:1)
是。是。
每张桌子都需要一个模型。没有它,你会遇到ActiveRecord
的大问题。
如果您的表格名称不是您的模型的复数,再次使用ActiveRecord
,您还会遇到其他一些问题。