8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Railsでタスク管理アプリを作成_2

Last updated at Posted at 2014-04-13

タスク管理アプリを作ってみよう(続き)

1. 前置き

1. 前提・事前作業

2. Projectsの一覧を表示させよう

  • Projectsコントローラにindexアクションを追加する
  • /home/vagrant/taskApp/app/controllers の中の projects_controller.rb を編集
ruby
class ProjectsController < ApplicationController

	# indexアクションを追加
	def index
		# @をつけた変数はviewでそのまま使用可能
		# Projectの全データを引っ張ってくる
		@projects = Project.all
	end

end

  • Viewを作成
  • /home/vagrant/taskApp/app/views/projects にファイルを作成
  • Project コントローラの index アクションに対応したファイル名で作成 --> index.html.erb
ERB

<h1>Projects</h1>

<ul>
	<% @projects.each do |project| %>
	<li> <%= project.title %> </li>
	<% end %>
</ul>

  • これで、 /projects が表示されるはず
  • サーバ起動
cd taskApp
rails s

無題.jpg

  • 出た出た

3. rootの設定をしよう

ruby
  root 'projects#index' # projects#indexのページをrootページとして設定 

3. 共通テンプレートを編集しよう

  • 生成された↑のhtmlのソースを見てみる
html

<!DOCTYPE html>
<html>
<head>
  <title>TaskApp</title>
  <link data-turbolinks-track="true" href="/assets/projects.css?body=1" media="all" rel="stylesheet" />
<link data-turbolinks-track="true" href="/assets/application.css?body=1" media="all" rel="stylesheet" />
  <script data-turbolinks-track="true" src="/assets/jquery.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/jquery_ujs.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/turbolinks.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/projects.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/application.js?body=1"></script>
  <meta content="authenticity_token" name="csrf-param" />
<meta content="crZjdmyOW4m7fZX+2MHCle6oABgFnhXUbOdtYTRES7M=" name="csrf-token" />
</head>
<body>

<h1>Projects</h1>

<ul>
	<li> project1 </li>
	<li> project2 </li>
</ul>


</body>
</html>
  • なんか色々書かれてる
  • 共通テンプレートに書かれているので、見てみる。 /home/vagrant/taskApp/app/views/layoutsapplication.html.erb
ERB
<!DOCTYPE html>
<html>
<head>
  <title>TaskApp</title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>
  • ここに共通のヘッダとかフッタが記載されている。
  • yield 部分が各ページの独自情報
  • 上記ファイルを編集して、全ページ共通のロゴ画像を表示させてみる。
  • イメージタグヘルパーとか言うimgタグを簡単にかける機能を使用
  • body に以下を追加
ERB
<%= image_tag 'logo.png' %>
  • 画像の場所は /home/vagrant/taskApp/app/assets/images ここ

  • 画像を格納しておく

  • 画像作成の際には、このサイトを利用してみた http://www.squarespace.com/logo

  • GIGAZINEに解説あり。

  • フリーでそれっぽいロゴが作れて素敵

  • 結果↓

無題.jpg

  • 思って頼りダサかったけど、期待通りに表示はされた
  • 同様に /home/vagrant/taskApp/app/assets/javascripts とか /home/vagrant/taskApp/app/assets/stylesheets で共通モジュールを管理している
  • スタイルシート application.css を弄ってみる
css
body {background: #a9a9a9}

無題.jpg

  • センスはともかく、でけた

  • さらに、ホームへのリンクを追加

  • application.html.erb に追記

  • リンクについてもrailsのヘルパーを使用可能

ERB
<%= link_to "HOME", "/" %>
  • HOMEっていう文字列でrootに遷移するリンクが確かに出来た。キャプチャは割愛
  • 下記のような書き方も出来る。こうすると、 /projects に遷移する
ERB
<%= link_to "HOME", "projects_path" %>
  • 何がおきているかというと、以前のポスト の最後の↓の内容の通り
(in /home/vagrant/taskApp)
      Prefix Verb   URI Pattern                  Controller#Action
    projects GET    /projects(.:format)          projects#index
             POST   /projects(.:format)          projects#create
 new_project GET    /projects/new(.:format)      projects#new
edit_project GET    /projects/:id/edit(.:format) projects#edit
     project GET    /projects/:id(.:format)      projects#show
             PATCH  /projects/:id(.:format)      projects#update
             PUT    /projects/:id(.:format)      projects#update
             DELETE /projects/:id(.:format)      projects#destroy
  • rake routes で定義されたものを使っている。
  • _path をつけることで、 projects とか new_project とか edit_project とかに遷移できる
8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?