ruby-on-rails – 从JSON访问虚拟属性

ruby-on-rails – 从JSON访问虚拟属性,第1张

概述我的设置:Rails 2.3.10, Ruby 1.8.7 我尝试从JSON调用中访问模型中的虚拟属性,但没有成功.假设我有以下型号和控制器代码 class Product name, description, price, attr_accessor :discounted_price endclass Price discountendclass ProductsCont 我的设置:Rails 2.3.10,Ruby 1.8.7

我尝试从JsON调用中访问模型中的虚拟属性,但没有成功.假设我有以下型号和控制器代码

class Product name,description,price,attr_accessor :discounted_price endclass Price discountendclass ProductsController def show  @product = Product.find(params[:ID])  respond_to do |format|   format.HTML # show.HTML.erb   format.Json { render :Json => @product }                                       end endend

我喜欢的是让JsON输出还包括Product.discounted_price,它是为每次调用实时计算的,即discounted_price = Price.discount * Product.price.有没有办法实现这个目标?

解:
在dmarkow的初步帮助下,我发现了,我的实际情况比上面的例子更复杂.我可以做这样的事情,在Product模型中添加一个getter方法

def discounted_price ...# do the calculation hereend

在JsON调用中执行此 *** 作

store = Store.find(1)store.as_Json(:include => :products,:methods => :discounted_price)
解决方法 您可以使用:methods参数运行to_Json以包含这些方法的结果.

render :Json => @product.to_Json(:methods => :discounted_price)
总结

以上是内存溢出为你收集整理的ruby-on-rails – 从JSON访问虚拟属性全部内容,希望文章能够帮你解决ruby-on-rails – 从JSON访问虚拟属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1262646.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存