0

次の従業員モデルがあります:

class Employee < ActiveRecord::Base
  attr_accessible :blood_group_id, :caste_id, :category_id, :emp_dob, :emp_email,     :emp_fathername, :emp_fname, :emp_full_name, :gender_id, :emp_id, :emp_lname, :emp_loc_master_id, :emp_mname, :emp_mobile_no, :emp_permanent_address, :emp_phone_no, :religion_id

  has_many:postings
  has_many:dependents
  has_many:qualifications

  belongs_to:gender
  belongs_to:category
  belongs_to:religion
  belongs_to:caste
  belongs_to:blood_group
end

そして資格モデル:

class Qualification < ActiveRecord::Base
              attr_accessible :Remarks, :employee_id, :qualification_name_id, :qualification_type_id, :specialisation_id, :university_id, :year

              belongs_to:employee
              belongs_to:qualification_type
              belongs_to:qualification_name
              belongs_to:specialisation
              belongs_to:university
            end

すべての関連付けが適切に行われます。これで、従業員フォームで新しい従業員を作成できます。また、資格フォーム (明示的に) に移動し、ドロップダウンから従業員を選択して資格を与えることで、資格を与えることもできます。

しかし、私がやりたいことは次のとおりです。監視対象の従業員に資格を追加できる「資格の追加」ボタンを作成し、暗黙的に従業員 ID を取得し、資格を追加して作成をクリックするだけです。

4

2 に答える 2

0

動的フォームを使用し、データをコントローラーに送信し、サーバー側でデータを解析します。これにはKnockoutJSを使用することをお勧めします。これは、同様の例です。

http://knockoutjs.com/examples/contactsEditor.html

于 2013-02-04T13:07:13.273 に答える
0

すべての助けをありがとう...

これが最終的に機能したものです:

これを資格コントローラーに追加しました...

class QualificationsController < InheritedResources::Base
def new
    @qualification = Qualification.new(:employee_id => params[:id])
end

def create
    @qualification = Qualification.new(params[:qualification])
        respond_to do |format|
          if @qualification.save
            format.html { redirect_to @qualification, notice: 'Qualification was successfully created.' }
            format.json { render json: @qualification, status: :created, location: @qualification }
          else
            format.html { render action: "new" }
            format.json { render json: @qualification.errors, status: :unprocessable_entity }
          end
        end
end
end

次に、これをemployee_showビューページに追加しました...

<%= link_to "Add A New Qualification for this Employee", new_qualification_url(:id => @employee.id) %>

そして、これを資格フォームに追加しました:

 <%= simple_form_for @qualification, :html => { :class => 'form-horizontal' } do |f| %>

  <%= f.association :employee,label_method: :emp_full_name, value_method: :id, include_blank: false, :as => :hidden%>
<%= f.association :employee,label_method: :emp_full_name, value_method: :id, include_blank: false, disabled: true%>

そして、従業員を追加した後、これは私が来た場所から従業員に戻るのに役立ちました:

<%= link_to t('.back', :default => t("helpers.links.back")),
          employee_path(@qualification.employee_id), :class => 'btn'  %>

私は素晴らしいDSL FTWであるsimple_formを使用しています:D:D:D .....

そして、すべてが思い通りにうまくいきます:) ...みんなの助けを借りて...私はここに投稿したので、私の問題のような誰かが将来解決できるようになりました:D ...

よろしく

于 2013-02-05T06:56:25.513 に答える