4

app/models/request/book フォルダーにモデルを作成しましたが、Book::Request::Status.table_name はテーブル名 "statuses" ("book_request_statuses" - 正しいテーブル名) を返します。正しいテーブル名を取得するにはどうすればよいですか?

モデルの場所

モデル/
  本/
    リクエスト/
      status.rb

モデル/本/リクエスト/status.rb

class Book::Request::Status < ActiveRecord::Base
...
end

config/application.rb

config.autoload_paths += Dir[Rails.root.join('app', 'models', '**', '*.rb')]

self.table_name = "book_request_statuses" を設定すると、モデルは(モデル内で)正しく機能しますが、良い方法ではありません:)。

私の英語が下手でごめんなさい

4

1 に答える 1

4

1) これらの行で app/models/book.rb にモジュールを作成します。

module Book
  def self.table_name_prefix
    'book_'
  end
end

2) 次に、app/models/book/request.rb に別のモジュールを作成します。

module Request
  def self.table_name_prefix
    'request_'
  end
end

3) ステータス モデルを app/models/book/request/ ディレクトリに配置します。

4) 他のすべてのファイルはそのままにしておきます。

それがうまくいくことを願っています。

于 2015-11-10T10:10:17.797 に答える