3

我有一个 RoR 应用程序和 SomeModel 模型。我有这个模型的视图,我想知道 - 有什么方法可以获取视图的路径吗?当然我可以用于这个模型实例

m = SomeModel.new
v = m.class.class_name.pluralize.downcase

它正在工作,但也许你知道更好的方法?:)

4

4 回答 4

1

正如@fl00r 所说,不,没有通用的方法可以做到这一点,因为所有视图的名称都取决于各个应用程序的实现(并非每个控制器都是资源控制器),但您当然可以编写一些帮助程序以便您不要不必m.class.class_name.pluralize.downcase经常打字。

module ViewPathHelper
  def resource_view_path(model_obj, action)
     "#{model_object.class.class_name.pluralize.downcase}/#{action}"
  end
end

将是这样做的一种方法。

这似乎是一个有点奇怪的要求——你需要视图路径做什么?你在做一些高度多态的事情吗?(因为有个东西叫 polymorphic_path ...)

于 2010-04-26T08:37:55.357 回答
0

通过控制器层处理模型的视图。每个视图都对应于一些 rout/controller 动作。所以与控制器名称相关的视图的路径:app/views/some_controller/{bunch of files}.html.erb

您的视图目录名将引用您的模型名称并不总是正确的。所以没有通用的方法来找出视图目录名。

您的解决方案是合适的,但并非在所有情况下都适用

于 2010-03-23T22:45:59.973 回答
0

如果您觉得您需要模型中视图的路径,那么您可能会将逻辑放入属于控制器或助手的模型中。您可能会重新考虑如何对 MVC 逻辑进行分区。

于 2010-04-27T18:32:20.627 回答
0

to_partial_path做你问的。

这非常方便,尤其是在使用 ajax 和/或嵌套和多态关系时。

于 2017-10-31T12:00:50.310 回答