ruby-on-rails – 在Rails中合并实例变量(将数据从控制器传递到视图)的最佳方法是什么?

ruby-on-rails – 在Rails中合并实例变量(将数据从控制器传递到视图)的最佳方法是什么?,第1张

概述我在Rails 3应用程序中有一个详细信息页面,它有几个实例变量.例如,我的视图有以下实例: @product@program@action...etc... 其中一些是单个字符串,一些是数组(来自外部API的请求的结果).总的来说,数据来自至少3个型号. 我的问题是:合并实例变量的最佳方法是什么,这样我的视图和控制器看起来更干净(不牺牲可读性)?我理解这个问题是开放式的,每个人都有自己的偏 我在Rails 3应用程序中有一个详细信息页面,它有几个实例变量.例如,我的视图有以下实例:

@product@program@action...etc...

其中一些是单个字符串,一些是数组(来自外部API的请求的结果).总的来说,数据来自至少3个型号.

我的问题是:合并实例变量的最佳方法是什么,这样我的视图和控制器看起来更干净(不牺牲可读性)?我理解这个问题是开放式的,每个人都有自己的偏好,但有哪些选择呢?我正在考虑将实例变量组合到一个对象中,以便前面的代码变成这样:

Details.productDetails.programDetails.action

非常感谢!

更新:走对象路线,是否有任何实际实现它的好例子(github,博客文章)?

解决方法 在我看来,清理控制器 *** 作的最佳方法是在那里分配尽可能少的实例变量.在实践中,我尝试仅在action / before_filters中分配实例变量,这些变量直接从传递给它的参数派生.此外,一般来说,我尽可能多地将实例变量赋值推送到before_filters,以便保持 *** 作的苗条.

但是,减少 *** 作中的实例变量赋值的最佳方法是使用视图助手.例如,如果您当前在用于输出某个div的 *** 作中分配实例变量,则只需使用视图助手直接执行输出,而无需将对象传递给视图.

以下是控制器上的before_filter示例:

before_filter :assign_variables,:only => :showdef show; endprivatedef assign_variables  @product = Product.find(params[:product_ID])  @program = Program.find(params[:program_ID])  @action = Action.find(params[:action_ID])end
总结

以上是内存溢出为你收集整理的ruby-on-rails – 在Rails中合并实例变量(将数据从控制器传递到视图)的最佳方法是什么?全部内容,希望文章能够帮你解决ruby-on-rails – 在Rails中合并实例变量(将数据从控制器传递到视图)的最佳方法是什么?所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存