Ruby on rails 如何简化Rails 3控制器方法
我目前在控制器中使用此方法:Ruby on rails 如何简化Rails 3控制器方法,ruby-on-rails,ruby-on-rails-3,respond-with,Ruby On Rails,Ruby On Rails 3,Respond With,我目前在控制器中使用此方法: 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
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_,但我不确定如何自定义输出。我是否需要重写as_json和to_xml方法来定制返回的数据?如果重写这些方法,属性关联是否仍能正确处理?例如,一处房产有许多租户和承包商。我可能还需要返回这些元素
我假设控制器方法可以简化为这样
def show
property = Property.find(params[:id])
respond_with(property)
end
respond\u with
方法有两个参数:resources*
和&block
,因此您应该能够做到这一点:
def show
property = Property.find(params[:id])
respond_with(property, :except => [:address1,
:address2,
:analysis_date,
:analysis_date_2,
...])
end
请记住,为了让我们正确地使用响应,您需要在控制器顶部添加响应到:html、:json、:xml
。这样,respond\u就知道要响应什么样的模拟