使ったコマンド
$ rake routes
$ rails generate model テーブル名 カラム:データ型
$ rake db:migrate
$ rails generate controller コントローラー名s #コントローラー名は複数形で書くこと!
編集したファイル
これらのファイルの関係性、覚えてますか? Rails内の役割分担
webアプリである以上、やっぱり見た目は大事ですね。
どこかの企業ホームページなどはともかく、個人サイトや社内アプリで使うぐらいなら著作権フリーのデザインがいろいろあるので、どんどん活用しましょう。
また、ここではLesson3でデザインを取り上げましたが、適応させるタイミングはもっと早くてもいいと思います。
見た目がきれいなところにいろいろ実装していくほうが完成イメージが湧きやすいし、実装していてもテンションがあがると思います。
Railsでのデフォルトの表示言語は英語です。
ちょっとぐらい英語でも、、、と思わなくはないのですが、せっかく使えるエラーメッセージも全部英語になってしまいますので、そこは日本語にしておきましょう。
ここ Github svenfuchs/rails-i18n から日本語の元ネタja.ymlをコピー
config/locales/ にja.ymlとして作成
config/locales/ja.ymlを編集 インデントに注意しましょう
例:Animeクラス(テーブル)にnameというフィールド(カラム)がある場合。
ja.yml
activerecord:
errors:
template:
# 省略
attributes:
anime:
name: 名前
application.rb
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
config.i18n.default_locale = :ja #:enを:jaに変更
これでviews/animes/_form.html.erb等でページを表示してみましょう。
フィールド(カラム)のタイトルが日本語になればOKです。
ソースの置き場所が決まっています。
* html => app/views/
* scss(css) => app/assets/stylesheets/
* coffeescript(javascript) => app/assets/stylesheets/
* image => app/assets/images
表示の統括をしているのはapp/views/layouts/application.html.erbです。
application.html.erbに記述されている<%= yield %>部分に、各viewのhtmlが入ることになります。
手順として、
<%= image_tag('line.png') %>
著作権のゆるいフリーデザインがおいてあるサイト
freeCSStemplates.org
openwebdesign
css creme
PSDFAN
などなど
シンプルでいいなら、ちまたで流行のtwitter bootsttrapならhtmlのclassを指定するだけでよく、早くて使い勝手もいいと思います。
Railsで使う場合は、専用のgemが必要です。 ここではtwitter-bootstrap-railsを使う方法を解説します。
group :assets do
#省略
gem 'twitter-bootstrap-rails' #追記
gem 'therubyracer' #追記
gem 'less-rails' #追記
end
$ bundle install
$ rails generate bootstrap:install
application.html.erb
<body>
#ここから
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<% link_to "Book shelf", books_path, class: "brand" %>
<div class="nav-collapse">
<ul class="nav">
<li><%= link_to "Publisher", publishers_path %></li>
</ul>
</div>
</div>
</div>
</div>
#ここまで追記
#省略
<div class="container"> #追記(yieldをdivで囲む)
<%= yield %>
</div> #追記
</body>
これでブラウザで確認してみましょう。
あとは、本家サイトのボタンやレイアウト例を見ながら、いろいろ試してみてください。
newやeditページから直接indexページへ移す方法
例:animes#new -> create から animes#indexへ
app/controllers/animes_controller.rb
def create
@anime = Anime.new(params[:anime])
respond_to do |format|
if @anime.save
format.html { redirect_to animes_path } #編集
format.json { render json: @anime, status: :created, location: @anime }
#省略
end
end
サイト入り口のwelcomeページを作成する方法(controllerとviewだけ追加する方法)
$ rails generate controller welcome index
public/index.htmlファイルを削除
config/routes.rbを編集
routes.rb
root:to => "welcome#index"
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License
produced by Minami.rb