4

このような2 つのエントリ ( titlecontent)でブログ投稿を作成しました

rails generate scaffold Post title:string content:text

これは機能しますが、

  1. 後で新しい入力エリアを追加したい場合はどうすればよいですか? 元。authorフィールドとか。Post scaffold のどこにフィールドを追加すればよいですか?

  2. style.csspublic ディレクトリ内にスタイルシートを作成しました。そこに座っているだけです。たとえば、それを自分のファイルにリンクするにはどうすればよいapp/views/post/new.html.erbですか?

  3. 特定のフィールドをスキャフォールディングするためのすべての微調整はどこで学ぶことができますか? 元。title入力フィールドに特殊文字 (例: ) を含めないようにしたい、@#$%または特定の長さを超えないようにしたい。

Windows と Rails 3.2.8 を使用しています。

4

3 に答える 3

5

3in1の質問:)

最初の答え

他の人が言ったように、新しいフィールドを持つようにテーブルを変更する必要があり、これは移行で簡単に行うことができます:

rails generate migration AddAuthorToPost author:string

ただし、新しいフィールドが含まれないため、ビューも変更する必要があります。対応するビューがありますapp/views/posts(とを探してくださいedit.html.erbnew.html.erb

もちろん、データベースで移行を実行する必要があります。

rake db:migrate

2番目の答え

のビューにスタイルシートを追加できますが、アプリケーションにはレイアウトapp/views/postsを使用することをお勧めします。レイアウトはにあります。レイアウトディレクトリにを作成し、そこにCSSインクルードを配置するだけです。app/views/layoutsapplication.html.erb

<html>
  <head>
    <%= stylesheet_link_tag "custom" %>
  </head>
  <body>
    <%= yield %>
  </body>
</html>

イールドブロックにはビューの実際の出力が含まれるため、既存のビューからこれらの部分を削除する必要があります。

3番目の答え

特定のフィールドで受け入れられる文字を制御する場合は、モデルの検証で行うことができます。

validates :title,
  :format => { :with => /\A[a-zA-Z]+\z/, :message => "Only letters allowed" },
  :length => { :maximum => 20 }
于 2012-11-30T15:27:55.540 に答える
1

既存のテーブルに列を追加する最も安全な方法は、新しい移行を作成することです。

rails g migration add_public_and_private_to_document public:string private:string

命名規則を使用する場合add_[column_names]_to_[model]、Rails は適切なテーブルを作成し、必要な移行を作成します。

詳細については、こちらをお読みください: http://guides.rubyonrails.org/migrations.html

于 2012-11-30T15:15:15.293 に答える
0

新しいフィールドを追加したい場合は、移行を行い、フィールドを _form.html.erb に追加する必要があります

rails generate migration add_author_to_posts author:string

app/assets/stylesheet 内でスタイルを作成する必要があります

これを読んでください:http://guides.rubyonrails.org/getting_started.html

移行の場合: http://guides.rubyonrails.org/migrations.html

また、お勧めします: http://railscasts.com/

ようこそ!

于 2012-11-30T15:15:00.020 に答える