我想将一个参数传递给使用define_method定义的方法,我该怎么做?
如果数组包含来自第二个数组的任何元素,那么测试最好,最优雅/最有效的方法是什么?
以下两个例子,试图回答这个问题,"食物"包含来自'奶酪'的任何元素:
cheeses = %w(chedder stilton brie mozzarella feta haloumi reblochon)
foods = %w(pizza feta foods bread biscuits yoghurt bacon)
puts cheeses.collect{|c| foods.include?(c)}.include?(true)
puts (cheeses - foods).size < cheeses.size
Run Code Online (Sandbox Code Playgroud) 如果 post.published?
.post
/ Post stuff
Run Code Online (Sandbox Code Playgroud)
除此以外
.post.gray
/ Post stuff
Run Code Online (Sandbox Code Playgroud)
我用rails helper实现了它,看起来很难看.
= content_tag :div, :class => "post" + (" gray" unless post.published?).to_s do
/ Post stuff
Run Code Online (Sandbox Code Playgroud)
第二种变体:
= content_tag :div, :class => "post" + (post.published? ? "" : " gray") do
/ Post stuff
Run Code Online (Sandbox Code Playgroud)
是否有更简单和特定于haml的方式?
UPD.特定于Haml,但仍然不简单:
%div{:class => "post" + (" gray" unless post.published?).to_s}
/ Post stuff
Run Code Online (Sandbox Code Playgroud) 我需要将字符串的值替换为Ruby中的正则表达式.是否有捷径可寻?例如:
foo = "0.0.0.0"
goo = "here is some other stuff 0.0.0.0"
if goo =~ /value of foo here dynamically/
puts "success!"
end
Run Code Online (Sandbox Code Playgroud) Ubuntu - > Apache - > Phusion Passenger - > Rails 2.3
我网站的主要部分会对您的点击做出反应.因此,如果您点击链接,它会将您发送到目的地,并立即重新生成您的页面.
但是,如果您点击后退按钮,则看不到新页面.不幸的是,如果没有手动刷新,它就不会出现; 看来浏览器正在缓存它.我想确保浏览器不缓存页面.
另外,我确实想为所有静态资产设置远期到期日期.
解决这个问题的最佳方法是什么?我应该在Rails中解决这个问题吗?Apache的?JavaScript的?
谢谢你的帮助,杰森
唉.这些建议都没有强迫我正在寻找的行为.
也许有一个JavaScript的答案?我可以让rails在注释中写出时间戳,然后让javascript检查以查看时间是否在五秒钟内(或者无论什么工作).如果是,那么很好,但如果没有,那么重新加载页面?
你认为这会有用吗?
感谢你的帮助,
贾森
来自Python背景,在风格方面总是有"正确的方法"("Pythonic"方式),我想知道Ruby是否存在相同的情况.我一直在使用自己的风格指南,但我正在考虑发布我的源代码,并且我希望它遵守可能存在的任何不成文的规则.
return在方法中明确键入是"Ruby方式" 吗?我已经看到它有没有完成,但有没有正确的方法呢?是否有合适的时机去做?例如:
def some_func(arg1, arg2, etc)
# Do some stuff...
return value # <-- Is the 'return' needed here?
end
Run Code Online (Sandbox Code Playgroud) 我有
@str = "<b>Hi</b>"
Run Code Online (Sandbox Code Playgroud)
在我的观点中:
<%= @str %>
Run Code Online (Sandbox Code Playgroud)
页面上显示的内容是:<b>Hi</b>当我真正想要的是嗨.将字符串"解释"为HTML标记的红宝石方法是什么?
编辑:案例在哪里
@str = "<span class=\"classname\">hello</span>"
Run Code Online (Sandbox Code Playgroud)
如果在我看来我做
<%raw @str %>
Run Code Online (Sandbox Code Playgroud)
HTML源代码是<span class=\"classname\">hello</span>我真正想要的是什么<span class="classname">hello</span>(没有反斜杠转义双引号).什么是"unescape"那些双引号的最佳方式?
我正在研究Ruby Koans.
about_strings.rb中的test_the_shovel_operator_modifies_the_original_stringKoan 包含以下注释:
在构建字符串时,Ruby程序员倾向于使用铲运算符(<<)而不是正等运算符(+ =).为什么?
我的猜测是它涉及速度,但我不明白引擎盖下的动作会导致铲子操作员更快.
有人能够解释这个偏好背后的细节吗?
升级到macOS后,高级Sierra CocoaPods无效.虽然很容易摆脱CocoaPods,但遗憾的是现在还不在范围内.错误消息如下.
zsh: /Users/****/.gems/bin/pod: bad interpreter: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin: no such file or directory
Run Code Online (Sandbox Code Playgroud)
我意识到错误源于Ruby升级但是什么是容易修复的?试图让CocoaPods使用新的ruby版本会产生其他错误.
编辑:现在我安装Ruby 2.0与rvm install 2.0.0和rvm use 2.0.0,然后重新安装的CocoaPods sudo gem install cocoapods.似乎现在正在工作.
ruby ×10
arrays ×2
string ×2
apache ×1
caching ×1
cocoapods ×1
coding-style ×1
haml ×1
html ×1
http-headers ×1
optimization ×1
regex ×1
return-value ×1