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

おそらくおわかりのように、私はレールに慣れていませんが、これがまだカバーされていないことを確認するために検索しました。

4

2 に答える 2

0

:page => params[:page]代わりに paginate に渡す必要がありますか?

于 2012-08-15T11:26:30.210 に答える
0

モデルだけでなく、クライアント コントローラーとモデルで belongs_to を宣言しました。そして2日間気付かなかった。

于 2012-08-16T11:03:10.220 に答える