私は3つのモデル:Stockholder
とFolder
を持っています。それぞれStock
has_many Stockholders
、それぞれStockholder
has_one :folder
です。 Folder
レコードはStockholder
モデル内に作成されます。株主のための情報を入力するフォームの提出の際親の親モデル内に子レコードを作成した後、子レコードにリダイレクト
before_create :build_default_folder
private
def build_default_folder
logger.debug "The debug #{self.holder_index}"
build_folder(name: "#{self.holder_index}. #{self.holder_name}", company_id: self.stock.company.id, parent_id: self.stock.company.folders.find_by_name("#{self.stock.security_series} #{self.stock.security_class} Stocks").id)
true
end
、私はちょうど作成されたフォルダにリダイレクトしたいと思います。そして、次のリダイレクトでそうしようとしています:
@stockholder=Stockholder.find(params[:id])
if @stockholder.update(stockholder_params)
redirect_to company_browse_path(@stockholder.stock.company, @stockholder.folder.id)
end
これは、しかし、次のエラーで結果:フォルダがすでに存在していると私は」の場合、しかし、何も問題はありません
Undefined method `id' for nil:NilClass
株主の編集だけです。これは、コントローラがリダイレクトのパラメータとしてそれを使用できるようになるまで、フォルダが作成されていないと考えています。これをどうすれば回避できますか?
何リダイレクトを 'redirect_to @ stockholder.folder'に置き換えるとどうなりますか? – agustaf
@agustafお返事ありがとうございます。 'Nilにリダイレクトできません! ' – neanderslob
フォルダレコードが実際に作成されますか? – agustaf