ruby - 露营的路径构建方法

标签 ruby syntax camping

有人可以为我解释 Lucky Stiff 的 Camping 微框架中的这部分代码吗:

# Simply builds a complete path from a path +p+ within the app.  If your
# application is mounted at <tt>/blog</tt>:
#
#   self / "/view/1"    #=> "/blog/view/1"
#   self / "styles.css" #=> "styles.css"
#   self / R(Edit, 1)   #=> "/blog/edit/1"
#
def /(p); p[0] == ?/ ? @root + p : p end

Source

最佳答案

def /(p);

方法名为'/',接收参数'p'

p[0] == ?/

检查字符串是否以“/”开头。问号用于指定字符按字面意思使用。你也可以认为它与'/'相同

p[0] == ?/ ? exp1:exp2

第二个问号用于条件评估。如果表达式 (p[0] == ?/) 为真,则计算 exp1,否则计算 exp2。

因此在上述情况下,如果字符串参数以 '/' 开头,则返回值 @root + p,即在它前面加上根。另一方面,如果参数不是以 '/' 开头,则按原样返回。

关于ruby - 露营的路径构建方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8470916/

相关文章:

ruby - 为什么我得到 "RAKEFILE ABORTED, NO RAKEFILE FOUND"?

javascript - Google Chrome JavaScript控制台上的语法错误

c# - Java语法问题: <O> O accept(ObjectVisitorEx<O> visitor)

ruby - Camping 在哪里存储我的数据库?

ruby - 我的应用程序的基本 URL 是什么?

ruby-on-rails - Ruby语法 “OR”运算符

ruby - 为什么在 RSpec 中弃用了负面的特定异常期望?

ruby-on-rails - 为什么结果是从数据库而不是缓存加载的?

ruby - Camping 和 Sinatra 之间有什么重要区别吗?

haskell - 函数组合 (.) 如何从内部工作?