"nil"不是返回有效部分路径的ActiveModel兼容对象



第一个问题,请温柔:)

我在为客户端模型创建索引视图时遇到问题,该视图belongs_to具有has_many关联的用户模型。

错误消息:

'nil' is not an ActiveModel-compatible object that returns a valid partial path.

具体来说,错误是指第 #11 行上的部分:

/views/clients/index.html

<% provide(:title, current_user.name) %>
<div class="row">
  <aside class="span4">
    <section>
      <h1>Your clients</h1>
    </section>
  </aside>
  <div class="span8">
    <% if current_user.clients.any? %>
      <ol class="clients">
        <%= render @clients %>
      </ol>
      <%= will_paginate %>
    <% end %>
  </div>
</div>
/

client/_client.html.erb

<li>
  <span class="client-name"><%= client.name %></span>
  <span class="client-info">
    Extra client info to come.
  </span>
</li>

客户端控制器:

class ClientsController < ApplicationController
  belongs_to :user
  def index
    @clients = current_user.clients.paginate(page: params[:page])
  end

编辑:

用户控制器,如果它有帮助...

class UsersController < ApplicationController
  before_filter :authenticate_user!
  def show
    if current_user.admin?
        @user = User.find(params[:id])
    else
        @user = current_user
    end
  end
  def index
    if current_user.admin?
        @users = User.paginate(page: params[:page])
    else
        redirect_to root_path
    end
  end
  def destroy
        User.find(params[:id]).destroy
        flash[:success] = "User destroyed."
        redirect_to users_path
    end
  end

正如你可能知道的那样,我是 rails 的新手,但已经搜索以确保这还没有被覆盖。

你应该传递:page => params[:page]来分页吗?

我在客户端控制器和模型中声明了belongs_to,而不仅仅是模型。而且两天没注意到。

最新更新