ruby-on-rails – 如何仅引用活动记录关联中的持久记录
发布时间:2020-12-16 22:16:04 所属栏目:百科 来源:网络整理
导读:在许多控制器的编辑方法中,您可以初始化一个新对象并编辑现有对象 class MagazinesController ApplicationController def edit @magazine = Magazine.find(params[:magazine_id]) @page = Page.find(params[:id]) @new_page = @magazine.pages.new endend 但
在许多控制器的编辑方法中,您可以初始化一个新对象并编辑现有对象
class MagazinesController < ApplicationController def edit @magazine = Magazine.find(params[:magazine_id]) @page = Page.find(params[:id]) @new_page = @magazine.pages.new end end 但是,在一个视图中,您将经常想要循环遍历持久化的对象并分别处理新对象 # magazines#edit %h4 Existing pages - @magazine.pages.each do |page| %p= link_to page,page.title 问题 …是页面关联既包含了现有的(持久化的)页面,也包含了通过@new_page = @ magazine.pages.new创建的新页面. 这很容易处理,但它是丑陋的 %h4 Existing pages - @magazine.pages.each do |page| - if page.persisted? %p= link_to page,page.title 我想使用一些关联方法来仅选择那些持久化的页面: %h4 Existing pages - @magazine.pages.persisted.each do |page| %p= link_to page,page.title 有什么办法吗 解决方法
您可以在页面模型中创建一个持久化的范围:scope:persisted,– > {其中“id IS NOT NULL”},这避免了每个相关页面的迭代,以检查它是否是新的记录.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Flex 遍历 ArrayCollection, Array
- ruby-on-rails – 弹性搜索轮胎:模拟ES的好策略
- 是否可以在Postgresql中为特定数据库设置单独的日志文件?
- c – 使用模板是否可以节省内存
- Oracle 中用户登录时遇到user test lacks create session p
- 如何让Flash不遮挡HTML div元素的技巧_HTML/Xhtml_网页制作
- c# – 良好的动态编程语言为.net推荐
- xml – XSLT apply-template select中的“@ * | node()”是
- PostgreSQL在select查询中重用计算结果
- XML Indexing