Mel*_*emi 3 ruby-on-rails helpers ruby-on-rails-3
新的Rails ...我已经创建了一个帮助器来格式化种族名称及其日期.:id => "current-race"如果存在条件,我需要通过(基本上如果事件正在发生).我怎么能这样做?
def formatted_race_dates(race)
link_to (race.homepage) do
raw("<strong>#{race.name}</strong> <em>#{race_dates_as_string(race)}</em>")
end
end
Run Code Online (Sandbox Code Playgroud)
现在当race.start_date < Date.today && race.end_date > Date.today我想添加id="current-race"链接时.
我通常会设置一个if/else条件并将其格式化为两种方式.但似乎必须有一个我不知道的Ruby技巧来简化某些内容,就像link_to在列表中常见地添加id/class一样?即使没有条件,我也不太确定在哪里/如何添加:id => "current-race".
如此多的Ruby/Rails技巧我不知道......一切都有帮助!
tad*_*man 10
由于link_to这个原因,该方法采用了选项:
link_to(race.homepage, :id => 'current-race') do ...
Run Code Online (Sandbox Code Playgroud)
您甚至可以添加条件来有选择地触发它:
link_to(race.homepage, :id => (race.start_date < Date.today && race.end_date > Date.today) ? 'current-race' : nil) do ...
Run Code Online (Sandbox Code Playgroud)
如果您有Race的方法指示它是否是最新的,您甚至可以折叠它:
link_to(race.homepage, :id => race.current? ? 'current-race' : nil) do ...
Run Code Online (Sandbox Code Playgroud)
这很容易在您的模型中实现,并可以在其他地方使用:
def current?
self.start_date < Date.today && self.end_date > Date.today
end
Run Code Online (Sandbox Code Playgroud)
将它放在模型中会使测试变得更加容易.
| 归档时间: |
|
| 查看次数: |
8126 次 |
| 最近记录: |