Aşağıdaki dizin yapısına sahip istiyorum:Rails'in kısmi görüntüleme aramasına nasıl bir görünüm yolu ekleyebilirim?
Benceviews/
app1/
users/_user.html.erb
users/index.html.erb
app2/
users/index.html.erb
shared/
users/_user.html.erb
users/index.html.erb
, ben/Uyg2 kontrol etmek Raylar anlatmak, nasıl Yani temelde
# app1/users/index.html
<%= render :partial => "user" %>
# => /app1/users/_user.html.erb
# app2/users/index.html
<%= render :partial => "user" %>
# => /shared/users/_user.html.erb
derim/Kullanıcılar dir sonra paylaşımlı dir o eksik şablon hatası eksik yükseltir önce?
İşte File.exist?
kullanarak Senthil önerdiği gibi (bu sorunu var
Update, benim çözüm - geri bildirim ve önerilerde rayların yerleşik bir şey zaten var
# 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
Dosyadan çıkıp uygun dosyayı oluşturup oluşturmadığını kontrol etmek için 'File.exists?' Kullanamazsınız? –