我正在编写一个简单的时间跟踪应用程序,其中用户拥有多个客户端以及客户端具有多个项目的位置。
我希望用户能够查看他们的项目列表(适用于所有客户端)。为了实现这一点,我通过用户和项目之间的关系建立了一个has_many。
但出于某种原因,我无法让他们的项目显示在他们的索引视图中。这可能是一个非常简单的原因,我只是没有注意到,所以如果是这样的话,请提前道歉。
以下是相关代码。
项目索引控制器:
def index
@projects = current_user.projects.paginate(:page => params[:page], :per_page => 6)
end
项目模型:
class Project < ActiveRecord::Base
belongs_to :client
validates :name, presence: true, length: { maximum: 30 }
validates :fee, presence: true, numericality: { only_integer: true,
greater_than_or_equal_to: 0, less_than_or_equal_to: 100000 }
validates :client_id, presence: true
end
客户端模型:
class Client < ActiveRecord::Base
belongs_to :user
has_many :projects, dependent: :destroy
validates :user_id, presence: true
validates :name, presence: true, length: { maximum: 30 }
validate :user_id_is_valid
private
def user_id_is_valid
errors.add(:user_id, "is invalid") unless User.exists?(self.user_id)
end
end
用户模型的相关部分:
class User < ActiveRecord::Base
has_many :clients, dependent: :destroy
has_many :projects, through: :clients
index.html.erb:
<div id="projects-list">
<% if current_user.projects.any? %>
<h3>Projects</h3>
<ul class="project-list">
<% render @projects %>
</ul>
<%= will_paginate @projects %>
<% end %>
</div>
_project.html.erb:
<li>
<%= link_to "#{project.name}", '#' %>
</li>
答案 0 :(得分:1)
应该是:
<%= render @projects %>
不
<% render @projects %>