ユーザーが「アイテム」を作成できる単純な Rails アプリがありますが、すべてのアイテムを一覧表示するマスター インデックス ページには、各「アイテム」の横に「表示、編集、および削除」リンクがあります。scaffolding を使用してアイテムを完成させたことが原因であることは理解していますが、作成したアイテムのみを編集できるようにしたいと考えています。前に言ったように、このロジックは現時点では私の頭の少し上にあります。レールにはまったく新しいものです。
ユーザーコントローラー:
class UsersController < ApplicationController
def show
@user = User.find_by_username(params[:id])
end
def index
@user = User.find(:all)
end
end
マスター アイテム ビュー:
<div class="well">
<h1>All Items</h1>
<table>
<tr>
<th>Title</th>
<th>Details</th>
<th>Inquire</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @items.each do |item| %>
<tr>
<td><%= link_to item.title, item_path(item) %></td>
<td><%= item.content %></td>
<td><%= mail_to item.email, "Inquire", :cc => "michaelomchenry@gmail.com",
:subject => "OverFlow Inquiry Regarding " + item.title %></td>
<td><%= link_to 'Show', item %></td>
<td><%= link_to 'Edit', edit_item_path(item) %></td>
<td><%= link_to 'Destroy', item, confirm: 'Are you sure?', method: :delete %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New Item', new_item_path %>
</div>
アイテムモデル:
class Item < ActiveRecord::Base
attr_accessible :content, :user_id, :title
validates :content, :length => { :maximum => 140 }
belongs_to :user
delegate :email, to: :user
end