2


1

私はRailsの初心者で、Railsの移行がどのように機能するかを理解しようとしています。 以下のような足場を作成しました。

スクリプト/生成足場項目col1:文字列col2:テキストrake db:migrate

マイグレーションを使用してもう1つcol4を追加したいです。

私は次のように移行を作成しました。

クラスAddCol4 <ActiveRecord :: Migration def self.up add_column:items、:col4、:numeric Item.reset_column_information end

def self.down remove_column:items、:col4 end end

rake dbを実行すると、新しいカラムが追加されます。 しかし、ビューは同期していません。 手動でビューに新しい列を追加するはずですか? 新しいテーブル列を使用してモデル/ビューを自動再生成する方法はありますか?

申し訳ありませんが、これは基本的な質問ですが、他のフレームワークに関する私の経験からすると、自動的に行われているはずです。 移行に関するレールガイドでは、移行を実行した後に同期がどのように機能することになっているかについて、これを明確にしていません。

1 Answer


2


残念ながら、手動でビューを修正する必要があるでしょう。 ビューは `script / generate scaffold`コマンドを実行することによって作成されます。 移行はデータベースを変更するだけです。 技術的には、scaffoldコマンドを再実行してビューを再生成することができます。 前のファイルを上書きするかどうかを尋ねるメッセージが表示されますが、この方法では、必要なすべての列を指定する必要があります。 あちこちに追加することはできません。

あなたが開発の早い段階にいるなら、あなたはこの道をたどるかもしれません。 実行するだけ

足場のスクリプト/破棄

それから再実行

スクリプト生成足場項目col1:文字列col2文字列col3:数値

少数のユーザーにしか見られないようなものを作成する場合は、http://activescaffold.com/ [ActiveScaffold]のように動的な足場拡張機能を利用できますが、HTMLは常に自分のやり方で表示されるので自分で作成することをお勧めします欲しいです。

私は他の動的足場プラグインのいずれも見つけることができないようです。 かなりの数がありました…​