0

私は STI を使用して、User の親と 2 人の子である Employer と Jobseeker を持つアプリを作成しています。関係がセットアップされ、テストされました。

STI を使用して、ユーザー コントローラーを 1 つだけ使用して、Employer User と Jobseeker Users を Postgres に保存したいと考えています。

form_tagを使用して詳細を入力しています。私が作成しました

<%= hidden_field_tag :user_type, :jobseeker %>
<%= hidden_field_tag :user_type, :employer %>

したがって、ユーザーコントローラーは入力のタイプ (雇用者または求職者) を識別できます。

ユーザーコントローラーの作成アクションは次のとおりです。

if params[:user_type] == "employer"
  @employer = Employer.new(params[:employer])
  @employer.save

elsif params[:user_type] == "jobseeker"
  @jobseeker = Jobseeker.new(params[:jobseeker])
  @jobseeker.save

end

params と入力すると、デバッガーにすべての正しいパラメーターが表示されます。上記の方法を使用して、求職者または雇用主のタイプを持つレコードを作成できます。

作業するパラメーター「ハンドル」がないため、残りのデータを Db に入れることができません。

4

1 に答える 1

1

フィールドにネストされた名前を使用して、ユーザー属性関連のパラメーターを他のパラメーター値から分離します。ここではuser、フィールドの名前に使用しています:

意見:

<% form_tag .. %>
  <%= text_field_tag 'user[name]' %>      #Assuming you have name attribute
    ...
  <%= hidden_field_tag 'user_type', 'employer' %>
<% end %>

コントローラ:

if params[:user_type] == "employer"
  @employer = Employer.new(params[:user])
  @employer.save

elsif params[:user_type] == "jobseeker"
  @jobseeker = Jobseeker.new(params[:user])
  @jobseeker.save
end
于 2013-03-27T18:37:44.387 に答える