第一个问题,请温柔:)
我在为客户端模型创建索引视图时遇到问题,该视图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,而不仅仅是模型。而且两天没注意到。