Rails memo
rakeコマンドがRails 5ではrailsコマンドで実行できるようになっている。
ヘルパー・・・viewで使えるメソッド
===================================
rails new mymemo
rails g scaffold Memo title:string body:text
rails db:migrate
===================================
rails new myblog
rails db:migrate
【model】
rails g model Post title:string body:text
rails c # (consoleでも可)
<↓↓以下、コンソール↓↓>
p = Post.new(title: 'title1', body:'body1')
p.save
Post.create(title:'title2', body:'body2') #=> newとsaveを同時に
Post.all #=> 登録データ確認
quit
<↑↑コンソールここまで↑↑>
-----------------------------------
## 初期化
rails db:migrate:reset
-----------------------------------
rails g controller Posts
confit/routes.rb にルーティングを記述。
(例)
resources :posts
その後、app/controllers に、処理を記述。
(例)
<posts_controller.rb> def index @posts = Post.all.order(created_at: 'desc') end
【view】
Postsコントローラのindexアクションに対応するviewは、
app/views/index.html.erb
(例)
My Posts
-
<% @posts.each do |post| %>
- <%= post.title %> <% end %>
body以外のソース(ヘッダとかタイトルとか)は、
views/layouts/application.html.rb
にて定義されている。
body部分は、<%= yield %>
アプリ全体に適用される cssファイルは、
app/assets/stylesheets/application.css
link_to <リンク先名>, <リンク先>
リンク先は、「rails routes」で出てくる Prefixに、「_path」を付けた値。
(例)
link_to post.title, post_path(post.id)
link_to post.title, post_path(post)
posts_controller.rb
def show @post = Post.find(params[:id]) # ※引数の理由は、ルーティングで「:id」となっているから。 end
その後、app/views/posts/show.html.erb を作成。
===================================
【ロゴ】
app\assets\images に、画像を配置。(logo.png 等)
その後、views/layouts/application.html.rb 等に記述。
<h1><%= image_tag "logo.png" %></h1>
cssを適用する場合、こんな感じ。
<%= image_tag "logo.png" , class: "logo" %>
app/assets/stylesheets/application.css に記述。
.logo { width: 60px; height: 50px; }
ロゴにリンクを張る。(例:root)
<%= link_to image_tag("logo.png" , class: "logo"), root_path %>
root_pathでなく、他のパスにしたい場合、rails routes 等で確認。Prefixに「_path」を付けた値を設定。
===================================
・app
・config
・db