所以,我有一个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| %>