Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将ID/类添加到Rails链接的更好更干净的方法?_Ruby On Rails_Ruby On Rails 3_Helpers - Fatal编程技术网

Ruby on rails 将ID/类添加到Rails链接的更好更干净的方法?

Ruby on rails 将ID/类添加到Rails链接的更好更干净的方法?,ruby-on-rails,ruby-on-rails-3,helpers,Ruby On Rails,Ruby On Rails 3,Helpers,新的铁路。。。我已经创建了一个帮助器来格式化种族名称及其日期。如果存在条件,我需要通过:id=>“当前比赛”(基本上如果事件现在正在发生)。我该怎么做呢 def formatted_race_dates(race) link_to (race.homepage) do raw("<strong>#{race.name}</strong> <em>#{race_dates_as_string(race)}</em>") e

新的铁路。。。我已经创建了一个帮助器来格式化种族名称及其日期。如果存在条件,我需要通过
:id=>“当前比赛”
(基本上如果事件现在正在发生)。我该怎么做呢

def formatted_race_dates(race)
    link_to (race.homepage) do
      raw("<strong>#{race.name}</strong> <em>#{race_dates_as_string(race)}</em>")
    end
end
def格式的比赛日期(比赛)
链接到(race.homepage)do
原始({race.name}{race\u dates\u as\u string(race)})
结束
结束
现在当
race.start\u datedate.today
我想将
id=“当前比赛”
添加到链接中

我通常会设置if/else条件,并以两种方式格式化它。但似乎有一个我不知道的Ruby技巧可以简化一些事情,比如在列表中向一个
link\u添加一个id/类?即使没有条件,我也不太确定在哪里/如何添加
:id=>“当前比赛”


这么多Ruby/Rails技巧我都不知道…一切都很有用

link\u 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 ...
这在您的模型中很容易实现,并且可以在其他地方使用:

def current?
  self.start_date < Date.today && self.end_date > Date.today
end
def电流?
self.start\u datedate.today
结束

把它放在模型中会使测试变得非常容易。

hmmm.只需添加
:id=>“当前比赛”
(与第一个示例相同)就会中断app:
/app/helpers/races\u helper.rb:12:语法错误,意外',',,预期','链接到(race.homepage,:id=>“当前比赛”)do
hmm.
link(race.homepage,:id=>…
失败,而
链接到(race.homepage,:id=>…
工作。但是
链接到(race.homepage)
也能工作!?!一个糟糕的空间。这在任何其他语言中都是意料之中的。Ruby/Rails对我来说最难的部分之一是它的宽大性……在我看来,这让学习变得更困难。这是一种生活……Ruby解析器在一些奇怪的情况下可能会对语法感到困惑,就像您在这里公开的情况一样。这主要源于以下事实:这在大多数方面都很轻松,因为括号是可选的,在大多数其他语言中它们都是必需的。不过,很高兴听到你这么说。
def current?
  self.start_date < Date.today && self.end_date > Date.today
end