以前私のモデルの名前を "Companies"と誤っていました。名前を変更する代わりに、すべての参照の名前を変更し、データベースを削除し、移行を再実行してすべてを再作成しました。私は、テーブルにはSQLiteのエクスプローラから「会社」として再作成を参照することができるよ私はIRBによるCompany.newを実行したときに、私が取得:ActiveRecord :: StatementInvalidの取得:モデルの名前を変更した後でテーブルを見つけることができませんでした。
ActiveRecord::StatementInvalid: Could not find table 'companies'
from /Users/emzy/rails/blah/.bundle/ruby/1.9.1/gems/activerecord-3.0.7/lib/active_record/connection_adapters/sqlite_adapter.rb:295:in `table_structure'
from /Users/emzy/rails/blah/.bundle/ruby/1.9.1/gems/activerecord-3.0.7/lib/active_record/connection_adapters/sqlite_adapter.rb:186:in `columns'
from /Users/emzy/rails/blah/.bundle/ruby/1.9.1/gems/activerecord-3.0.7/lib/active_record/base.rb:680:in `columns'
from /Users/emzy/rails/blah/.bundle/ruby/1.9.1/gems/activerecord-3.0.7/lib/active_record/persistence.rb:284:in `attributes_from_column_definition'
from /Users/emzy/rails/blah/.bundle/ruby/1.9.1/gems/activerecord-3.0.7/lib/active_record/locking/optimistic.rb:62:in `attributes_from_column_definition'
from /Users/emzy/rails/blah/.bundle/ruby/1.9.1/gems/activerecord-3.0.7/lib/active_record/base.rb:1395:in `initialize'
from (irb):1:in `new'
from (irb):1
from /Users/emzy/rails/blah/.bundle/ruby/1.9.1/gems/railties-3.0.7/lib/rails/commands/console.rb:44:in `start'
from /Users/emzy/rails/blah/.bundle/ruby/1.9.1/gems/railties-3.0.7/lib/rails/commands/console.rb:8:in `start'
from /Users/emzy/rails/blah/.bundle/ruby/1.9.1/gems/railties-3.0.7/lib/rails/commands.rb:23:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
私は「企業のための参照がどこにあるかわからないんだけどから来て - 私はプロジェクトのディレクトリ内の参照を見つけることができません。すべてのymlsなどが正常に見えます。
コントローラー:
class CompanyDirectoryController < ApplicationController
before_filter :require_admin, :only => [:new, :create, :edit]
def new
@company = Company.new
@company.companylinks.build
end
モデル:
class Company < ActiveRecord::Base
validates_presence_of :fullname, :detailed_description, :product_info, :cat_tags, :email
validates_uniqueness_of :fullname
has_many :companylinks, :class_name => 'CompanyLinks',
:foreign_key => "pid",
:dependent => :destroy
has_attached_file :company_photo,
:styles => { :medium => "300x300>",
:thumb => "100x100>" }
attr_accessor :photo_file_name
attr_accessor :photo_content_type
attr_accessor :photo_file_size
attr_accessor :photo_updated_at
accepts_nested_attributes_for :companylinks,
:allow_destroy => true
end
ルート: resources :company, :controller => :company_directory
なぜそれはまだcompanies
の代わりCompany
を探していますか?どんな助けも素晴らしいだろう。
ありがとうございます。私はテーブル名がモデルのように特異でなければならないと考えていました。 –
Pragmatic ProgrammersのRailsを使用したAgile Web Developmentのコピーを入手できれば、キー・レールの概念と優れたソフトウェア設計の原則を把握するのは良い読書です。 – Chandranshu