加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何简化这种Rails 3控制器方法

发布时间:2020-12-17 02:00:40 所属栏目:百科 来源:网络整理
导读:我目前在控制器中有这个方法: 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,...]) }
  end
end

似乎我可以重构此代码以使用respond_with,但我不确定如何自定义输出.我是否需要覆盖as_json和to_xml方法才能自定义返回的数据?如果我覆盖这些方法,属性关联仍然会被正确处理吗?例如,一个房产有很多租户和许多承包商.我可能还需要返回这些元素.

我认为控制器方法可以简化为此.

def show
  property = Property.find(params[:id])
  respond_with(property)
end

解决方法

respond_with方法有两个参数:资源*和一个&块,所以你应该能够这样做:

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

请记住,为了正确响应,您需要在控制器顶部添加respond_to:html,:json,:xml.因此,response_withknows回应什么模仿.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读