Ruby on rails 在RubyonRails中,我们是否应该将content_用于(:foobar)?
这是针对Rails 3的,我几乎总是认为(:foo)的Ruby on rails 在RubyonRails中,我们是否应该将content_用于(:foobar)?,ruby-on-rails,Ruby On Rails,这是针对Rails 3的,我几乎总是认为(:foo)的content\u后面跟着(:foo)(在haml中): 因此,与其进行两次查找,不如只进行一次查找并使用更长的代码: - title_for_page = content_for(:title_for_page) # is "" when not previously set %title= title_for_page.blank? ? 'Our great website' : "#{title_for_page} - Our g
content\u后面跟着(:foo)
(在haml中):
因此,与其进行两次查找,不如只进行一次查找并使用更长的代码:
- title_for_page = content_for(:title_for_page) # is "" when not previously set
%title= title_for_page.blank? ? 'Our great website' : "#{title_for_page} - Our great website"
??但是如果
content\u for?
被实现为一个散列,那么不管怎样它可能是超级快速的,与blank?
相比?找到答案的唯一方法是测试:)
我正在使用当前?
有趣的是,blank?
比present?
快,不是吗?是时候去探索了
哇,原来
出现了?
只是调用blank?
并否定它。找到答案的唯一方法是测试:)
我正在使用当前?
有趣的是,blank?
比present?
快,不是吗?是时候去探索了
哇,原来
present?
只是调用blank?
并将其否定。一行程序来解决问题:
- title_for_page = (c = content_for(:title_for_page)).blank? ? 'Our great website' : "#{c} - Our great website"
解决此问题的一个衬里:
- title_for_page = (c = content_for(:title_for_page)).blank? ? 'Our great website' : "#{c} - Our great website"
标题中有一个输入错误,应该是content_for;)标题中有一个输入错误,应该是content_for;)看起来不错,只是我担心它还引入了一个新的局部变量
c
,它不太明显(与循环使用的I
相反,循环使用的是非常明显的使用模式),我通常会将这一个字符的变量保留到这种情况下。我同意你的观点,在使用局部变量时应该谨慎,但我认为如果你遵循这条经验法则,你应该很好地去做:)为什么要创建一个新的局部变量?我的目标:=内容页(:标题页)?“#{yield(:title_for_page)}-我们伟大的网站”:“我们伟大的网站”
看起来不错,只是我担心它还引入了一个新的局部变量c
,它不太明显(与循环使用的I
相反,循环使用的是非常明显的使用模式),我通常为这种情况保留这一个字符变量。我同意你的观点,在使用局部变量时应该谨慎,但我认为如果你遵循这条经验法则,你应该很好地去做:)为什么要创建一个新的局部变量?我的目标:=内容页(:标题页)?“#{yield(:title_for_page)}-我们伟大的网站”:“我们伟大的网站”
- title_for_page = (c = content_for(:title_for_page)).blank? ? 'Our great website' : "#{c} - Our great website"