私は、スタッフと臨床家のために2つの一致するユーザサブクラスを持つ列挙型と単一テーブル継承を使用して定義された2つのロールを持つ単一のユーザテーブルを持っています。私がスタッフについて必要としない臨床家についての多くの情報が必要なので、私はclinician_profilesテーブルを作成し、臨床家プロファイルのスタブを作成するために、ユーザモデルのafter_create:create_clinician_profileを使用しています。コントローラのインスタンス変数の定義問題:Rails 5
私は臨床医が自分のプロファイルを完成させるためのページを作成しようとしていますが、フォームをレンダリングするために適切な臨床家のプロファイルをビューに引き込むように、次のエラーが表示されます。ユーザーIDは104としてログインしています。
私は近くにいるように感じますが、私が間違っていることはわかりません。どんな助けもルーキーにとって大いに感謝されるでしょう!
私はヘッダにこのリンクを使用して、ページに上陸しています:ここで
<li><%= link_to "Manage My Profile", edit_clinician_profile_path(current_user) %></li>
は私のユーザモデルの関連部分は以下のとおりです。
class User < ApplicationRecord
self.inheritance_column = :role
enum role: { Staff: 0, Clinician: 1}
belongs_to :university
has_many :referral_requests
class Staff < User
validates :university_id, presence: true
end
class Clinician < User
has_many :lists
has_many :universities, through: :lists
has_one :clinician_profile
after_create :create_clinician_profile
end
ここに私のClinicianProfileモデルです:
class ClinicianProfile < ApplicationRecord
has_many :clinician_profile_languages
has_many :languages, through: :clinician_profile_languages
has_many :clinician_profile_races
has_many :races, through: :clinician_profile_races
belongs_to :clinician
end
clinician_profiles schema
create_table "clinician_profiles", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "firstname"
t.string "lastname"
t.string "address1"
t.string "address2"
t.string "city"
t.string "state"
t.string "zip"
t.boolean "accepting_patients"
t.integer "rate"
t.string "license_number"
t.string "license_state"
t.string "school"
t.integer "year_graduated"
t.string "accepts_insurance"
t.boolean "sliding_scale"
t.text "bio"
t.boolean "verified"
t.integer "years_licensed"
t.integer "years_of_experience"
t.integer "clinician_id"
end
ClinicianProfilesController
class ClinicianProfilesController < ApplicationController
def edit
@clinician_profile = ClinicianProfile.find(params[:id])
end
def index
end
def show
end
def create
end
end
ここで(中/ビュー/ clinician_profiles edit.html.erb)
<%= form_for(@clinician_profile) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
が私の見解の始まりだあなたがClinicianProfileが作成されていないようですあなたが正しいparams [:id]を渡しているかどうかを確認してください。 – nersoh
あなたのユーザーIDが104ではありませんか? (あなたがログインしているもの)。そのユーザーに属するClinicianProfileは、異なるIDを持つ可能性があります。 「臨床家」が分かっているならば、@clinician_profile = current_user.clinician_profile' – rccursach
編集ビューにどのように着陸しますか?リンクをクリックするともしそうなら、そのコードを投稿してください。どこか間違った 'params'を渡しているところ – Pavan