0

第一个问题,请温柔:)

我在为属于具有 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>

/clients/_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 的新手,但已经搜索以确保这还没有被覆盖。

4

2 回答 2

0

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

于 2012-08-15T11:26:30.210 回答
0

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

于 2012-08-16T11:03:10.220 回答