- イベント登録後、イベント詳細ページに移る
- トップページに未開催のイベントを表示する
- イベント一覧から詳細ページに移れる
イベント詳細ページの作成
before_action :authenticate, except: :showまずはこれだけEventコントローラに追加した。:idの入ったurlからこれを引数として持てこれる。ルーティングはresourcesでOKと。
def show
@event = Event.find(params[:id])
end
イベント詳細ページはログインしていなくても確認できるようにするため、before_actionにexcept: :showを追記してログイン状態をチェックしないようにしている。
ビューにはイベント内容と、作成ユーザーを表示します。p193の通りファイル作成。
models/event.rbに下記を追記。
belongs_to :owner, class_name: 'User'
ownerについては後で設定するらしい。だからきっとここでのhas_manyの
設定も後回し。
これでイベント内容が表示されるというけど・・・あ、表示された。すごい。Twitterで使っているIDとプロフィール画像も表示された。なんか楽しい。
それにしても、ビューを書くセンスってhtmlとcss知っていることが前提っぽいからつらいなー。そこもRubyも知らないのに、Railsって相当誤った選択じゃないか。進めた奴を恨むよ。
これでイベント内容が表示されるというけど・・・あ、表示された。すごい。Twitterで使っているIDとプロフィール画像も表示された。なんか楽しい。
それにしても、ビューを書くセンスってhtmlとcss知っていることが前提っぽいからつらいなー。そこもRubyも知らないのに、Railsって相当誤った選択じゃないか。進めた奴を恨むよ。
イベント一覧ページの作成
トップページにイベント一覧を表示させる。なんか久しぶりにトップページにきました。welcome/index.html.erbを下記の通り書き換え。<div class="page-header">
<h1>イベント一覧</h1>
</div>
<div class="list-group">
<% @event.each do |event| %>
<%= link_to(event, class: 'list-group-item') do %>
<h4 class="list-group-item-heading">
<%= event.name %>
</h4>
<p class="list-group-item-text">
<%= event.start_time.strftime('%Y/&m/%d %H:%M') %> - <%= event.end_time.strftime('%Y/&m/%d %H:%M') %>
</p>
<% end %>
<% end %>
</div>
@eventについて未定義なので取得処理の実装をする。未開催のイベントを開催時間の昇順で取得する。設定はwelcomeコントローラ。
class WelcomeController < ApplicationController
def index
@event = Event.where('start_time > ?', Time.zone.now).order(:start_time)
end
end
whereとかorderとかってsqlのクエリでさーね。なんとなくわかるけど詳しい書式がわからん。
参考:
こんなか。
お、トップページに一覧が出た。BootStrapって便利そうだな。前にも書いたっけ。無いセンスでCSS一生懸命作るより、用意されたものを組み合わせる方が素人には嬉しいね。参考にできるサイトもたくさんありそう。
参考:
0 件のコメント:
コメントを投稿