gpt4 book ai didi

ruby-on-rails - 如何简化这个 Rails 3 Controller 方法

转载 作者:行者123 更新时间:2023-12-01 05:36:22 24 4
gpt4 key购买 nike

我目前在 Controller 中有这个方法:

def show
property = Property.find(params[:id])
respond_to do |format|
format.xml { render :xml => property.to_xml(:except => [:address1, :address2, :analysis_date, :analysis_date_2, ...]) }
format.json { render :json => property.to_json(:except => [:address1, :address2, :analysis_date, :analysis_date_2, ...]) }
end
end

似乎我可以重构此代码以使用respond_with,但我不确定如何自定义输出。我是否需要覆盖 as_json 和 to_xml 方法才能自定义返回的数据?如果我覆盖这些方法,属性关联是否仍会得到正确处理?例如,一个属性(property)有许 Multi-Tenancy 和许多承包商。我可能还需要返回这些元素。

我会假设 Controller 方法可以简化为这个。
def show
property = Property.find(params[:id])
respond_with(property)
end

最佳答案

respond_with方法有两个参数:resources*和一个 &block所以你应该能够做到这一点:

def show
property = Property.find(params[:id])
respond_with(property, :except => [:address1,
:address2,
:analysis_date,
:analysis_date_2,
...])
end

请记住,为了我们 respond_with正确地你需要添加 respond_to :html, :json, :xml在 Controller 的顶部。所以 respond_with知道要回应什么 mime 。

关于ruby-on-rails - 如何简化这个 Rails 3 Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8427782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com