命名空间的路由问题

时间:2013-12-07 20:02:41

标签: ruby-on-rails ruby-on-rails-4 rails-routing

所以,我有一个User模型,可以通过Admin :: users_controller& API :: users_controller。我有一些路由问题 - 如果我创建一个用户,然后导航到localhost:3000 / admin / users,我看到以下错误:

undefined local variable or method `admin_user' for #<#<Class:0x5ef0a10>:0x359ef98>
Extracted source (around line #21):
           <td><%= link_to 'Show', admin_user %></td>

以下是我的app \ views \ admin \ users \ index.html.erb视图中的代码段:

  <tbody>
    <% @users.each do |user| %>
      <tr>
        <td><%= user.first_name %></td>
        <td><%= user.last_name %></td>
        <td><%= user.email %></td>
        <td><%= link_to 'Show', admin_user %></td>
        <td><%= link_to 'Edit', edit_admin_user_path(user) %></td>
        <td><%= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } %></td>
      </tr>
    <% end %>
  </tbody>
</table>

<br>

<%= link_to 'New User', new_admin_user_path %>

这是我的控制器在app \ controllers \ admin \ users_controller.rb中的一个片段:

class Admin::UsersController < ApplicationController

  http_basic_authenticate_with name: 'my_username', password: 'my_password'
  before_action :set_user, only: [:show, :edit, :update, :destroy]

  # GET /users
  # GET /users.json
  def index
    @users = User.all
  end

我的rake路由输出显示我有一个admin_user路径

   admin_users GET    /admin/users(.:format) admin/users#index
               POST   /admin/users(.:format) admin/users#create
new_admin_user GET    /admin/users/new(.:format) admin/users#new
edit_admin_user GET   /admin/users/:id/edit(.:format) admin/users#edit
    admin_user GET    /admin/users/:id(.:format) admin/users#show
               PATCH  /admin/users/:id(.:format) admin/users#update
               PUT    /admin/users/:id(.:format)

我知道形成_form部分,我不得不使用具有正确名称空间的对象进行迭代,以便rails可以通过下面的代码确定它是admin命名空间下的User对象。我需要在index.html.erb中为这个迭代器做些什么类似的事情吗?

<%= form_for [:admin, @user] do |f| %>

0 个答案:

没有答案