如何在 .html.slim 文件之间传递 ruby 变量
How to pass ruby variables between .html.slim files
我有电子邮件模板,我在其中保留并使用 ruby 个变量:
### mailer/_body.html.slim
ruby:
start_day_number = @absence.starts_on.strftime('%d').to_i.ordinalize
end_day_number = @absence.ends_on.strftime('%d').to_i.ordinalize
start_date = @absence.starts_on.strftime('#{start_day_number} of %B (%A)')
end_date = @absence.ends_on.strftime('#{end_day_number} of %B (%A)')
type = @absence.type.capitalize
status = @absence.status.capitalize
p class="details"
| Starts: <b>#{start_date}</b><br />
| Ends: <b>#{end_date}</b><br />
| Type: <b>#{type}</b><br />
| Status: <b>#{status}<b><br />
有没有更方便和可读的方式将这些变量存储在另一个 .slim 文件中并将它们传递给模板?
最理想的情况是,我希望将它们存储在这样的布局目录中:
### layouts/mailer.html.slim
doctype html
html
head
meta charset="utf-8"
css:
...
body
ruby:
start_date = @absence.starts_on.strftime('#{start_day_number} of %B (%A)')
end_date = @absence.ends_on.strftime('#{end_day_number} of %B (%A)')
...
== yield
..但是没用。
事实证明,装饰器模式正是我所需要的。谢谢汤姆勋爵!
我有电子邮件模板,我在其中保留并使用 ruby 个变量:
### mailer/_body.html.slim
ruby:
start_day_number = @absence.starts_on.strftime('%d').to_i.ordinalize
end_day_number = @absence.ends_on.strftime('%d').to_i.ordinalize
start_date = @absence.starts_on.strftime('#{start_day_number} of %B (%A)')
end_date = @absence.ends_on.strftime('#{end_day_number} of %B (%A)')
type = @absence.type.capitalize
status = @absence.status.capitalize
p class="details"
| Starts: <b>#{start_date}</b><br />
| Ends: <b>#{end_date}</b><br />
| Type: <b>#{type}</b><br />
| Status: <b>#{status}<b><br />
有没有更方便和可读的方式将这些变量存储在另一个 .slim 文件中并将它们传递给模板?
最理想的情况是,我希望将它们存储在这样的布局目录中:
### layouts/mailer.html.slim
doctype html
html
head
meta charset="utf-8"
css:
...
body
ruby:
start_date = @absence.starts_on.strftime('#{start_day_number} of %B (%A)')
end_date = @absence.ends_on.strftime('#{end_day_number} of %B (%A)')
...
== yield
..但是没用。
事实证明,装饰器模式正是我所需要的。谢谢汤姆勋爵!