ruby-on-rails - 将 ID/Class 添加到 Rails link_to 的更简洁的方法?

标签 ruby-on-rails ruby-on-rails-3 helpers

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

现在当race.start_date < Date.today && race.end_date > Date.today我想添加 id="current-race"到链接。

我通常会设置一个 if/else 条件并以两种方式对其进行格式化。但似乎必须有一个我不知道的 Ruby 技巧来简化一些事情,例如将 id/class 常见添加到一个 link_to在列表中?即使没有条件,我也不太确定在哪里/如何添加 :id => "current-race" .

这么多我不知道的 Ruby/Rails 技巧...一切都有帮助!

最佳答案

link_to 方法采用选项正是出于这个原因:

link_to(race.homepage, :id => 'current-race') do ...

您甚至可以添加条件来选择性地触发它:

link_to(race.homepage, :id => (race.start_date < Date.today && race.end_date > Date.today) ? 'current-race' : nil) do ...

如果你有一个 Race 方法来指示它是否是当前的,你甚至可以折叠它:

link_to(race.homepage, :id => race.current? ? 'current-race' : nil) do ...

这很容易在您的模型中实现,并且可以在其他地方使用:

def current?
  self.start_date < Date.today && self.end_date > Date.today
end

将它包含在模型中可以大大简化测试。

关于ruby-on-rails - 将 ID/Class 添加到 Rails link_to 的更简洁的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6075769/

相关文章:

javascript - jquery - 更改文本颜色

ruby-on-rails - rails assert_redirect_to

app-store - Mac 应用商店助手工具 Sandboxing

ruby-on-rails - Rails : Simple form + bootstrap - When errors, 字段没有变红

javascript - 使用 Javascript 变量存储来自 <%= %> 的 Ruby 输出

sql - 基于计数分组的 Active Record 对象

ruby-on-rails - 通过组关系列出属于用户的文档模型的所有实例

ruby-on-rails - 有_许多 :through association error 'could not find the source association'

ruby-on-rails - 我可以在 application_helper.rb 中使用其他辅助方法吗?

asp.net - 标签 html a 的助手