@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中合并实例变量(将数据从控制器传递到视图)的最佳方法是什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)