Я получаю NoMethodError в SitesController # index
неопределенный метод `поддомен 'для nil: NilClass
У меня есть таблица учетных записей с полем «поддомен» и модель сайта, которая является подклассом модели учетной записи:
class Site < Account
end
create_table "accounts", :force => true do |t|
t.string "subdomain"
t.integer "user_id"
конец
и есть метод current_account, определенный в application_controller, как этот
def current_account
if !is_root_domain?
current_account = Account.find_by_subdomain(request.subdomains.first)
if current_account.nil?
redirect_to root_url(:account => false, :alert => "Unknown Account/subdomain")
end
else
current_account = nil
end
return current_account
конец
который вызывает is_root_domain? Метод ниже:
def is_root_domain?
result = (request.subdomains.first.present? && request.subdomains.first != "www") ? false : true
конец
Я также изменил метод current_account, но получил ту же ошибку:
def current_account
current_account = Account.find_by_subdomain(request.subdomains.first)
end
В любом из вышеперечисленных сценариев я получаю неопределенный метод `поддомен 'для ошибки nil: NilClass в индексе SitesController #. который показан ниже при попытке доступа к URL:
class SitesController < ApplicationController
def index
@site = Site.find_by_subdomain(current_account.subdomain)
end
def opps
@site = Site.find_by_subdomain(current_account.subdomain)
end
конец
Я пробовал различные приемы борьбы с ошибками ни одного метода, о которых я знаю, например, добавление 'attr_ccessible' и метода initiliaze, но, похоже, ничего не работает. Я также изменил поле таблицы Accounts с «subdomain» на «name», но безуспешно. Любое руководство будет оценено.