我有一个数据库,其中包含具有 has_and_belongs_to_many 关系的用户和组。添加新组时,它会被创建,但用户对该组的成员资格似乎不会传播,直到我清除缓存或使用隐身窗口登录。我知道它已正确保存,只是在清除缓存之前似乎没有加载。这只是最近才开始发生,我不知道为什么!任何帮助将不胜感激。
从模型:
class User < ActiveRecord::Base
has_many :services
has_many :recipes
has_and_belongs_to_many :groups
attr_accessible :recipes, :groups
end
class Group < ActiveRecord::Base
has_and_belongs_to_many :users
has_many :recipes
attr_accessible :description, :title, :recipe, :picture, :featured, :user_id
end
创建组方法:
def create
@user = User.find(current_user.id)
@group = Group.new(params[:group])
@group.user_id = @user.id
@user.groups << @group
redirect_to group_path(@group)
end
显示用户的组成员资格——在缓存被清除之前不会更新:
<% @user.groups.each do |group| %>
<% if group %>
<p class="group-title"><a href="<%= group_path(group) %>"><%= group.title %></p>
<% @latestpic = Recipe.where("group_id = ?", group).limit(1).order("created_at DESC") %>
<% if @latestpic.exists? %>
<% @latestpic.each do |pic| %>
<%= image_tag(pic.picture.url(:medium)) %>
<% end %></a>
<% else %>
<%= image_tag "http://placehold.it/300x300" %>
<% end %>
<br></br>
<% end %>
<% end %>