ruby-on-rails - rails - 如何在保存后刷新关联

标签 ruby-on-rails ruby-on-rails-3 activerecord

我有一个包含项目列表的类别。项目有一个位置,类别有一个关系 has_many :items, :order => "position"。当用户更新位置值时,我想查看它的位置。我的位置是一个浮点数,允许在四舍五入的数字之间移动。

pos=item.category.items.map(&:id)
current_position=pos.index(id.to_i)
item.save # want to refresh the relationship here
pos_new=item.categoty.items.map(&:id)
# grabbing this since just accessing item isn't updated if positioning has changed
item_new=Item.find(id)
pos_new=item_new.category.items.map(&:id)
new_position=pos_new.index(id)
if current_position!=new_position
  is_moved=true # sent back in JSON to propagate a dynamic change.
end

以上工作,但它似乎真的很冗长。有没有办法让我在项目保存时告诉类别关系需要刷新,因为订单可以更改?

最佳答案

您可以使用 item.reload这将从数据库中重新获取模型,下次您调用关联时,它将重新获取它。

关于ruby-on-rails - rails - 如何在保存后刷新关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12678389/

相关文章:

ruby-on-rails - request.raw_post 在发送 webhook 时返回 nil

ruby-on-rails - 如何返回每天应在设定时间通知约会的用户列表

ruby-on-rails - rails 3.2.11 : RailsAdmin localization

ruby-on-rails - Rails 供应商文件夹

ruby-on-rails - ActiveRecord 的 find_or_create* 方法是否存在根本性缺陷?

ruby-on-rails - 为什么要执行这个回调?

ruby-on-rails - globalize3 和 easy_globalize3_accessors 验证

ruby-on-rails - "public.rr_pending_changes"是什么?为什么占用 9gig?

Codeigniter Active Record 类插入自

ruby-on-rails - Vbulletin 和 rails 应用程序之间的单点登录