Что значит "?" делать? Что такое __FILE__? - PullRequest
0 голосов
/ 04 ноября 2010

случайные рельсы / рубиновые вопросы для новичка, высоко ценится.

Смущен тем, что второе '?'означает в строке:

@page ||= params[:page].blank? ? 1 : params[:page].to_i

В файлах init.rb, что действительно делает FILE ?

require File.join(File.dirname(__FILE__), "rails", "init")

Ответы [ 2 ]

7 голосов
/ 04 ноября 2010

Первый?является частью имени метода, соглашения, используемого для методов, которые возвращают логический результат.

Второй?является встроенным условным оператором:

a ? b : c

эквивалентно

if a then
  b
else
  c
end

__FILE__ - это функция ядра, которая возвращает имя файла текущего файла.File.dirname(__FILE__) просто возвращает имя каталога текущего файла, а File.join совпадает с Array#join с разделителем каталогов, специфичным для ОС (/ в Linux / OSX и \ в Windows)

3 голосов
/ 04 ноября 2010

1) Это троичное выражение, второй вопросительный знак по существу «затем», двоеточие после него означает по существу «остальное». Все это можно переписать:

if params[:page].blank?
  1
else
  params[:page].to_i
end

2) __FILE__ - ссылка на текущий файл, в данном случае init.rb.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...