如何在渲染xml时排除has_many关联的字段

发布于 2024-10-30 05:51:34 字数 550 浏览 3 评论 0原文

第 1 部分。

我有一个 Series,其中 has_many :articles。在我的 show 操作中,如果请求 xml,我想包含所有关联的 :articles,但我实际上只想要其中的三个字段::title:date:id

我该如何执行此操作?

第 2 部分。

我想知道在我的模型中重写 to_xml 是否会更好,而不是从控制器执行此操作。这是好的做法吗?我该怎么做?

非常感谢!

编辑

扇区几乎是正确的,但它需要是一个散列:

render :xml => @series.to_xml(:include => { :articles => { :only => [:title, :date, :id] } })

Part 1.

I have a Series which has_many :articles. In my show action, if xml is requested, I'd like to include all the associated :articles, but I really only want three of the fields: :title, :date, and :id

How can I do this?

Part 2.

Instead of doing this from the controller, I wonder if it would be better just to override to_xml in my model. Is this good practice? How would I do this?

Thanks so much!

Edit

Sector was almost right, but it needs to be a hash:

render :xml => @series.to_xml(:include => { :articles => { :only => [:title, :date, :id] } })

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冬天的雪花 2024-11-06 05:51:34

第 1 部分

respond_to do |format|
  format.xml {
    render :xml => @series.to_xml(:include => { :articles => { :only => [:title, :date, :id] } })
  }
end

第 2 部分

控制器是实现此目的的好地方

Part 1

respond_to do |format|
  format.xml {
    render :xml => @series.to_xml(:include => { :articles => { :only => [:title, :date, :id] } })
  }
end

Part 2

Controller is good place for this

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文