我有一个简单的 Rails 应用程序,用户可以在其中创建“项目”,但在列出所有项目的主索引页面上,每个“项目”旁边都有“显示、编辑和删除”链接。我知道这是因为我使用脚手架来完成这些项目,但我想确保人们只能编辑他们创建的项目。目前,这种逻辑有点超出我的想象,就像我之前所说的那样,我对 Rails 完全陌生。
用户控制器:
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