0

形式,當我渲染部分爲我的模型我使用:Ruby on Rails的 - 渲染的模型

<%= 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

嘗試:

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

tableize是ActiveSupport::Inflector的方法,它包括一些其它涼爽命名操作方法。

+0

請注意,如果模型對象是任何其他子類,則它的行爲將與原始代碼不同 – Gareth