0

ROR3 を使用して会社のスタッフ記録管理システムを開発しています ROR は初めてです。1ヶ月前に始めたばかりです。そのため、アプリケーションを開発する際にいくつかの問題に直面しています。

これらはいくつかのテーブルです

1- プロファイル ID service_number first_name last_name

2- プロモーション ID サービス番号 ランク date_of_rank profile_id

従業員が次のランクに昇進したときに昇進記録を挿入するフォームがあります。

    <%= f.input :service_number %>
    <%= f.input :rank %>

    <%= f.input :date_of_rank, :start_year => Date.today.year - 50, :end_year => Date.today.year%>

        <%= f.hidden_field :profile_id %>


    <%= f.error :base %>
    <%= f.button :submit %>
<% end %>

プロモーション テーブルにデータを挿入するときに、ユーザーが入力したサービス番号に対応する profile_id を挿入したいと考えています。profile_id は、ユーザーの隠しフィールドです。したがって、自動的に profile_id を取得する必要があります。会社が従業員を識別するために使用する一意の番号であるため、サービス番号を使用しています。

誰でも私がこれを行うのを手伝ってもらえますか?

4

1 に答える 1

0

profile_id隠しタグは必要ですか?service_numberが一意のフィールドである場合は、Profileそれに基づいて を検索し、Promotion作成中の に関連付けることができます。

def create
  @promotion = Promotion.new(params[:promotion])
  profile = Profile.where(:service_number => @promotion.service_number).first
  @promotion.profile = profile  # this will set profile_id for you

  @promotion.save
  ...
end

Promotionこれは、モデルにbelongs_to :profile関連付けがあり、Profileモデルにhas_many :promotions関連付け (または ) があることを前提としていますhas_one :promotion

于 2012-04-11T00:07:48.080 に答える