这是最好的做法,并给我更好的性能?rails3 - 这是更好的性能代码
例如:
我有状态表,它有5个记录,每个记录必须在单独的变量存储。
方法一:
@new_status = Status.find_by_status("NEW")
@inprocess_status = Status.find_by_status("InProcess")
@completed_status = Status.find_by_status("Completed")
@occupied_status = Status.find_by_status("Occupied")
@success_status = Status.find_by_status("Success")
方法2:
statuses = Status.all
@new_status = statuses.find {|status| status.status == "NEW"}
@inprocess_status = statuses.find {|status| status.status == "InProcess"}
@completed_status = statuses.find {|status| status.status == "Completed"}
@occupied_status = statuses.find {|status| status.status == "Occupied"}
@success_status = statuses.find {|status| status.status == "Success"}
或者任何其它的好办法?
是不是要将“状态”的最低值记录分配给/ @ new_status,次低的记录分配给/ @ completed_status等?我想你可能不得不重新排列最后一行。我可能只是检查状态的数量,以确保找到五个。 –
'order(:status)'将确保它们的顺序是正确的(它应该按字母顺序升序)。是的,我在我的代码中做了一些假设,例如,状态是唯一的,这些状态将存在。目的不是为了展示一个傻瓜式的例子,其目的是为OP的问题提供另一种更有效的替代方案。 – gylaz