デバイス 2.1.0 を使用して、ページにモデル
を送信しようとしています。
したがって、私のルートには次のものがあります。new registration
PricingPlan
devise_scope :user do
delete "/logout" => "devise/sessions#destroy"
get "/login" => "devise/sessions#new"
get "/signup/:plan" => "devise/registrations#new"
end
そして、デバイス登録コントローラーをオーバーライドします。これをroutes.rbで機能させるには:
devise_for :users, :controllers => {:registrations => "registrations"}
Deviseのコントローラーをオーバーライドする実際の登録コントローラーには、次のものがあります。
class RegistrationsController < Devise::RegistrationsController
view_paths = "app/views/devise"
def new
super
@plan = PricingPlan.find_by_name(params[:plan])
end
デフォルトのビューがまだdeviseに行くように....コントローラーの
私のnew
ビューでは、registration
これを呼び出します:
<h3>You've chosen the <%= @plan.name %> plan.</h3>
そして、私はこのエラーを受け取ります:
undefined method `name' for nil:NilClass
また...私のPricingPlan
モデルでは:
class PricingPlan < ActiveRecord::Base
has_many :users
そして私のUser
モデルでは:
class User < ActiveRecord::Base
belongs_to :pricing_plan
私はレールでかなり新しいです。