Привет, я новичок в рельсах, и то, что я делаю, пока что является для меня обычным делом, забавно, что в Rails кажется, что это трудно сделать, и в Интернете не так много сообщений на эту тему:
Я создал новое приложение rails. Так как у меня была устаревшая база данных, которую я хотел включить в свое новое приложение rails, я заменил «development.sqlite3» на устаревшую базу данных «Listings.sqlite3»
Затем я сгенерировал модель "business.rb", чтобы она соответствовала таблице "Бизнес" в моей прежней базе данных. Вот код для этого:
class Business < ActiveRecord::Base
establish_connection "Listings_development"
end
Затем я изменил файл config / database.yml, добавив в него следующее:
Listings_development:
adapter: sqlite3
database: db/Listings.sqlite3
pool: 5
timeout: 5000
Listings_test:
adapter: sqlite3
database: db/Listings.sqlite3
pool: 5
timeout: 5000
Listings_production:
adapter: sqlite3
database: db/Listings.sqlite3
pool: 5
timeout: 5000
После этого я сгенерировал контроллер с именем «business_controller.rb», который имеет следующий код:
class BusinessesController < ApplicationController
def show
end
def index
@businesses = Business.all
respond_to do |format|
format.html #index.html.erb
end
end
end
Наконец я изменил файл "config / rout.rb" на следующий:
Directory::Application.routes.draw do
resources :businesses
get "business/index"
match ':controller(/:action(/:id))(.:format)'
Наконец я добавил файл представления "index.html.erb:
<h1>Listing businesses</h1>
<table>
<tr>
<th>Name:</th>
<th>Phone Number:</th>
<th>Address:</th>
</tr>
<% @businesses.each do |business| %>
<tr>
<td><%= business.company_name %></td>
<td><%= business.phone_number %></td>
<td><%= business.address %></td>
Я думал, что все готово, мне удалось включить мою прежнюю базу данных и ее данные в мое новое приложение rails. Но когда я набрал "http://localhost:3000/businesses/" в моем окне браузера. Я получаю эту ошибку на экране:
Showing /Users/AM/Documents/RailsWS/cmdLineWS/Directory/app/views/businesses/index.html.erb
where line #14 raised:
undefined method `company_name' for #<Business:0x00000104e1d0e8>
Extracted source (around line #14):
11:
12: <% @businesses.each do |business| %>
13: <tr>
14: <td><%= business.company_name %></td>
15: <td><%= business.phone_number %></td>
16: <td><%= business.address %></td>
17: <td><%= link_to 'Show', business %></td>
Rails.root: /Users/AM/Documents/RailsWS/cmdLineWS/Directory
Что случилось с Rails ?? Неужели так сложно включить устаревшую БД? Я думал, что весь смысл рельсов в быстром прототипировании.
Вот снимок моего файла Listings.db