nil:NilClass の SitesController#index 未定義メソッド「サブドメイン」で NoMethodError を取得しています
「サブドメイン」フィールドを持つ Accounts テーブルと、Account Model のサブクラスである Site モデルがあります。
class Site < Account
end
create_table "accounts", :force => true do |t|
t.string "subdomain"
t.integer "user_id"
終わり
そして、このように applications_controller で定義された current_account メソッドがあります
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
上記のシナリオのいずれかの下で、SitesController#index で nil:NilClass エラーの未定義メソッド「サブドメイン」が発生します。これは、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」と初期化メソッドを追加するなど、私が知っているメソッドエラーと戦うためのさまざまなトリックを試しましたが、何も機能していないようです。また、アカウント テーブル フィールドを「サブドメイン」から「名前」に変更しましたが、成功しませんでした。どんなガイドでも大歓迎です。