1

我想更改我的 pin 生成的路径,以适应管理员用户访问其他用户 pin 并能够删除它们。

我用设计创建了一个用户模型并添加了管理属性。这工作正常,但由于我已将每个引脚与控制器中的 current_user 相关联,因此在以管理员用户身份登录时,我无法删除其他引脚或查看引脚。

我认为问题出在我的 pins_controller.rb

@pin = current_user.pins.find(params[:id])

以下是不起作用的实际路线

<% if current_user == pin.user or user_signed_in? && current_user.admin? %>
    <p>
      <%= link_to content_tag(:i, "", class:"icon-edit"), edit_pin_path(pin) %> |
      <%= link_to content_tag(:i, "", class:"icon-trash"), pin, method: :delete, data: { confirm: 'Are you sure?' } %>
    </p>
<% end %> 

我也可能对此有误,问题可能出在 routes.rb 文件中

Omrails::Application.routes.draw do

get "users/show"

resources :pins

devise_for :users
match 'users/:id' => 'users#show', as: :user

get 'about' => 'pages#about'

root :to => 'pins#index'

我的 git 存储库在这里:https ://github.com/nathan-wallace/imageapp.git

4

1 回答 1

1

你可以试试这个

    <% if user_signed_in? %>
      <% if (current_user == @pin.user) or current_user.admin? %>
      <p>
        <%= link_to content_tag(:i, "", class:"icon-edit"), edit_pin_path(pin) %> |
        <%= link_to content_tag(:i, "", class:"icon-trash"), pin, method: :delete, data: {               confirm: 'Are you sure?' } %>
      </p>
     <% end %>
    <% end %>
于 2013-04-20T21:45:30.253 回答