Rails:为现有控制器创建模型

时间:2014-05-20 04:33:07

标签: ruby-on-rails-4

我有一个基本应用程序,它由一个只包含一个方法的控制器组成。该方法连接到API,该API返回多个哈希值(在数组中)。经过一些操作后,新的哈希值被写入不同的数组。视图迭代新数组并构建一个表以显示每个哈希的内容。

控制器:

class VlanManagerController < ApplicationController
  require 'fog'
  require 'ipaddress'

  def connect

    @vlans = Array.new

    connection = Fog::Compute.new(
      provider: 'Ecloud',
      ecloud_access_key: '#*#*#*#*#*#*#',
      ecloud_private_key: '*#*#*#*#*#*#*',
      ecloud_version: '2014-03-01'
    )

    networks = connection.get_organization("/cloudapi/ecloud/networks/environments/######").body

    networks[:Network].each do |hash|
      ip = IPAddress(hash[:name])
      netmask = ip.netmask
      hosts = ip.hosts.map {|host| host.address }
      gateway = hosts[0]

      @vlans << {vlan: hash[:Description], network: hash[:name], netmask: netmask, gateway: gateway}
    end
  end
end

查看:

<h1>VLAN Manager v0.01</h1>

<table>
  <tr>
    <th>VLAN</th>
    <th>Network</th>
    <th>Netmask</th>
    <th>Gateway</th>
    </th>
  <tr>
<% @vlans.each do |hash| %>
    <tr>
      <td><%= hash[:vlan] %></td>
      <td><%= hash[:network] %></td>
      <td><%= hash[:netmask] %></td>
      <td><%= hash[:gateway] %></td>
    </tr>
  <% end %>

</table>

我现在想要添加一个模型,该模型将包含一个表,所有这些哈希值都将被写入,而不是作为HTML表格写入浏览器。

如果我创建了一个模型,那么所有必要的基础设施都可以用它来创建,还是我必须做的不仅仅是运行rails generate model ...?开始一个新的rails应用程序并生成脚手架会更有意义吗?

1 个答案:

答案 0 :(得分:0)

您可以创建具有所需名称的任何模型,并根据需要创建列。我认为最好的方法是控制器名称应为VlanManagers

前:

rails g model VlanManager name:string

添加记录

VlanManager.create(:name => "prasad")

检索所有记录

VlanManager.all