我想有以下目錄結構:如何添加Rails部分呈現查找的視圖路徑?
views/
app1/
users/_user.html.erb
users/index.html.erb
app2/
users/index.html.erb
shared/
users/_user.html.erb
users/index.html.erb
在我看來,我會打電話給
# app1/users/index.html
<%= render :partial => "user" %>
# => /app1/users/_user.html.erb
# app2/users/index.html
<%= render :partial => "user" %>
# => /shared/users/_user.html.erb
所以基本上,我怎麼告訴Rails在/ APP 2,檢查/用戶目錄然後共享目錄,然後引發它缺少模板錯誤?
更新
我身邊這讓(由塞特希的建議,使用File.exist?
這裏是我的解決方案 - 反饋意見和建議表示歡迎
# application_helper.rb
# Checks for a partial in views/[vertical] before checking in views/shared
def partial_or_default(path_name, options={}, &block)
path_components = path_name.split("/")
file_name = path_components.pop
vertical_file_path = File.join(vertical}, path_components, file_name)
shared_file_path = File.join("shared", path_components, file_name)
full_vertical_file_path = File.join("#{Rails.root}/app/views/", "_#{vertical_file_path}.html.erb")
attempt_file_path = File.exist?(full_vertical_file_path) ? vertical_file_path : shared_file_path
render({:partial => attempt_file_path}.merge(options), &block)
end
任何你不能使用'File.exists?'來檢查文件是否退出並呈現相應文件的原因? – 2011-05-21 12:11:31