Rails 編集ボタンを投稿したユーザーのときのみだけ表示させたいのですが、以下のように書くとエラーが出てしまいます。
app/views/events/show.html.erb
lang
1<div class="col-md-4"> 2 <% if @event.created_by?(current_user) %> 3 <%= link_to 'イベントを編集する', edit_event_path(@event), class: 'btn btn-info btn-lg btn-block' %> 4 <% end %> 5</div>
app/models/event.rb
lang
1class Event < ActiveRecord::Base 2 3 belongs_to :owner, class_name: 'User' 4 validates :name, length: { maximum: 50 }, presence: true 5 validates :place, length: { maximum: 100 }, presence: true 6 validates :content, length: { maximum: 2000 }, presence:true 7 validates :start_time, presence: true 8 validates :end_time, presence: true 9 validate :start_time_should_be_before_end_time 10 11 def created_by?(user) 12 return false unless user 13 owner_id == user.id 14 end 15 16 private 17 18 def start_time_should_be_before_end_time 19 return unless start_time && end_time 20 21 if start_time >= end_time 22 errors.add(:start_time, 'は終了時間よりも前に設定してください') 23 end 24 end 25end
エラーがでるので、app/views/events/show.html.erbは
lang
1<div class="col-md-4"> 2 <% # if @event.created_by?(current_user) %> 3 <%= link_to 'イベントを編集する', edit_event_path(@event), class: 'btn btn-info btn-lg btn-block' %> 4 <% # end %> 5</div>
と記述しています。
編集ボタンを投稿したユーザーのときのみだけ表示させたいのですが、どうすればの良いでしょうか?
![イメージ説明]WIDTH:600
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/01/06 01:02