我和Rails一样新,所以如果这是一个明显的错误就道歉。
我最近创建了一个脚手架,为未来的商店网站添加了“行情”表。我把适当的模型和控制器放在一个模块“Project”中。现在我尝试链接到localhost:3000 / quotes,我收到以下错误消息:
ActiveRecord::StatementInvalid in Project::Quotes#index
Showing /Users/e/Documents/company/company-store/app/views/project/quotes/index.html.erb where line #28 raised:
SQLite3::SQLException: no such table: project_quotes: SELECT "project_quotes".* FROM "project_quotes"
Extracted source (around line #28):
</thead>
<tbody>
<% @quotes.each do |quote| %>
<tr>
<td><%= quote.first_name %></td>
<td><%= quote.last_name %></td>
我的控制器页面如下所示:
module Project
class QuotesController < Project::BaseController
before_action :set_quote, only: [:show, :edit, :update, :destroy]
def index
@quotes = Quote.all
end
(等)
我尝试将视图页面和控制器从@ quotes.each更改为@ project_quotes.each,我收到相同的错误消息。当我只更改控制器或视图时,我收到此错误消息:
undefined method `each' for nil:NilClass
我已经查看了StackOverflow对这类问题的反应,但最常见的反应是,我还没有建立表,没有意义,因为这来自一个脚手架,我跑了rake db :无事故地迁移。
class CreateQuotes < ActiveRecord::Migration
def change
create_table :quotes do |t|
t.string :first_name
t.string :last_name
#More fields that say essentially the same thing (email, etc.)
t.timestamps
end
end
end
我做错了什么?
答案 0 :(得分:0)
我运行了一个迁移,将表名从quote更改为project_quote,这似乎已经成功了。谢谢你的帮助!