我有一个控制器:
class UsersController < ApplicationController
def departments
@users_departments = current_user.departments
@new_department = current_user.department.new
end
我的观点看起来像这样:
<%= form_for @new_department, :url => {:action => "departments"} do |f| %>
.
<% end %>
<% @users_departments.each do |dept| %>
<td><%= dept.name %></td>
<td><%= dept.employees %></td>
<% end %>
@ users_departments.each ...向我展示了一个空的部门。为什么?以及如何解决这个问题?
答案 0 :(得分:0)
首先 - 尝试使用REST form_for doc
类似的东西:
<%= form_for @post do |f| %>
将生成在UserController中创建操作的链接
关于@ users_departments.each - 可能在您的数据库current_user.departments.count中 - 返回0
我的意思是说你的数据库中可能没有这样的记录。
答案 1 :(得分:0)
好的,我发现这个神奇的东西被称为懒惰和渴望加载。
我所做的就是改变这一点:
@users_departments = current_user.departments
到
@users_departments = current_user.departments.find(:all)
如果被调用,Rails似乎会在视图中加载结果。随着“查找”到位,数据库被点击,@users_departments
获取“真正”的条目。不像以前那样在视野中。