Ruby on Rails - 渲染模型的形式

时间:2012-09-08 15:22:18

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 renderpartial

当我渲染我正在使用的模型的部分时:

<%= partial @my_model %>

自动查找文件..view / my_models / _my_model.html.erb 我真的很喜欢这种符号,因为它感觉正确!

我的问题: 现在我想要一个表示法自动查找编辑部分。 有办法吗?到现在为止我用了

<%= partial 'edit' %>

这没关系,但我的模型有很多子类,我喜欢它在模板的右子类视图文件夹中自动查找的方式。 直到知道我必须为我的模型寻找类,然后调用

<% if @my_model.class == FirstSubClass %>
    <%= partial 'firstsubclasses/_edit.html.erb' %>
<% elsif @my_model.class == SecondSubClass %>
    <%= partial 'secondsubclasses/_edit.html.erb' %>
<% end %>

我更喜欢一行:)任何想法?

1 个答案:

答案 0 :(得分:1)

尝试:

<%= partial '#{@my_model.class.name.tableize}/_edit.html.erb' %>

tableize是ActiveSupport::Inflector的一种方法,其中包括一些其他很酷的命名操作方法。