これが本当のアプリでどのように動作するかわからないだけ理論、:
にテーブルaaa_bbb_ccc_ddd
ため、たとえば、あなたがモデルAaaBbb
を作成しますし、あなたにこのモデルをマッピングし、ActiveRecord
条約が必要と名付けmodels
を作成するには表:
class AaaBbb < ActiveRecord::Base
self.table_name = "aaa_bbb_ccc_ddd"
end
以上のヒト例:
class AdminUser < ActiveRecord::Base
self.table_name = "my_wonderfull_admin_users"
end
今、あなたはあなたのようなURLがあります意味のルートにリソースとしてAaaBbb
があるでしょう:
.../aaa_bbb/...
を、あなたは、URL内のテーブル名の名前を使用したい場合、私はあなたがルートを書き換えることができると思います:
get 'aaa_bbb_ccc_ddd/:id', "aaa_bbb#show", as: "aaa_bbb"
もう一度、あなたを助けるかもしれない理論。私はまだそのようなケースで作業していないが、これから始めるだろう。
編集
にデータベースからモデルの作成を自動化:
https://github.com/bosko/rmre
が、私は、これはあなたが持っているだろう奇妙な名前のレール規則によってモデルを作成すると思いますあなたのアプリでリソースとして使用するそれは強制ではないでしょう https://github.com/wnameless/rare_map
:
私はSOの場合には、テーブル名と異なるモデル名を使用する上で見つかった良いテンプレート:
class YourIdealModelName < ActiveRecord::Base
self.table_name = `actual_table_name`
self.primary_key = `ID`
belongs_to :other_ideal_model,
:foreign_key => 'foreign_key_on_other_table'
has_many :some_other_ideal_models,
:foreign_key => 'foreign_key_on_this_table',
:primary_key => 'primary_key_on_other_table'
end
schema.rbから自動化する方法はありますか?私は10列~20列のテーブルを持っています。可能であれば、手作業で名前と属性をコーディングする必要はありません。 – Derek
の場合は、テーブルのみを気にして、そのカラムをそのまま使用してください。私はあなたがこのdbで動作する他のアプリに影響を与えずに何とかカラムを変更できるかどうかはわかりません。自動化について私は何か有用なものが見つかった場合、試合は..私の答えを更新すると思います。 – rmagnum2002
ああ、私は列名を変更することを考えていませんでした。私がモデルファイルを持っていなくても、私は後ろのものをやっているからです。だから、私は 'attr_accessible'を含むすべてをタイプする必要がありますので、私は自動的にモデルコードを生成したいものです。 – Derek