這兩個列表只是略有不同,因爲我需要將前三項與其他項目略有不同。現在不工作的唯一原因是因爲具有正則表達式的變量被調用兩次。任何想法如何獲得前三個項目(如第一個%li中所示),而不必像這樣重複所有事情?Rails re-factor:我如何重構這個工作?
%ul.list_container
- @links.sort_by { |link| link.votes.where(:up => true).count - link.votes.where(:up => false).count }.reverse.first(3).each do |link|
%li
.various_containers
%p
= link_to link.title, "http://youtube.com/embed/#{link.url.to_s.match(/\/\/youtu.be\/(\S+)$/)[1]}/?rel=0", :class => "youtube title_link"
= link.url_html
- @links.sort_by { |link| link.votes.where(:up => true).count - link.votes.where(:up => false).count }.reverse.drop(3).each do |link|
%li{:style => 'margin-bottom: 50px;'}
.various_containers
%p
= link_to link.title,"http://youtube.com/embed/#{link.url.to_s.match(/\/\/youtu.be\/(\S+)$/)[1]}/?rel=0", :class => "youtube title_link"
謝謝!它似乎應該工作,但我仍然得到一個無方法錯誤(未定義的方法'[]爲零:NilClass)就像我得到它被調用兩次。它來自正則表達式,你看到任何原因導致這種情況的原因嗎? –
我明白了,謝謝尼古拉斯。現在都在工作。我的正則表達式並沒有涵蓋我作爲url的特定格式。 :) 再次感謝! –