@pup_pupets

Чем отличаются данные конструкции?

Есть два куска кода:

module Admin
  class CategoriesController < AdminController

и
class Admin::CategoriesController < ApplicationController


Чем они отличаются? В обоих случаях всё вроде работает как и надо. И какая из них правильная?

P.S. Я так понимаю что нет правильной и обе идентичны.

Извините, учусь ещё
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
Отличия есть. В первом случае код внутри класса будет видеть константы из модуля (и имена вложенных классов соответственно), а втором - нет.
Пример:
module A1
  TEST = 'zz'
end

module A1
  class B1
    def foo
      TEST
    end
  end
end

module A2
  TEST = 'zz'
end

class A2::B2
  def foo
    TEST
  end
end


A1::B1.new.foo #> "zz"
A2::B2.new.foo #> NameError: uninitialized constant A2::B2::TEST
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
первая ссылка гугла по запросу "rails модули": rubyclub.blogspot.ru/2012/10/ruby_869.html
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы