随机的轨道/红宝石问题,非常感谢。
困惑于第二个'?'意思是在行:
@page ||= params[:page].blank? ? 1 : params[:page].to_i
在init.rb文件中, FILE 的确做什么?
require File.join(File.dirname(__FILE__), "rails", "init")
答案 0 :(得分:7)
第一个?是方法名称的一部分,这是一种用于返回布尔结果的方法的约定。
第二个?是内联条件运算符:
a ? b : c
相当于
if a then
b
else
c
end
__FILE__
是一个返回当前文件文件名的内核函数。 File.dirname(__FILE__)
只会返回当前文件的目录名,而File.join
与Array#join
与操作系统特定的目录分隔符(Linux / OSX上的/
和{\
相同Windows上的1}}
答案 1 :(得分:3)
1)这是一个三元表达,第二个问号基本上是“然后”,它后面的冒号基本上是“其他”。整件事可以改写:
if params[:page].blank?
1
else
params[:page].to_i
end
2)__FILE__
是对当前文件的引用,在本例中为init.rb
。