我有一个员工模型如下:
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,我只需要添加资格并单击创建。
答案 0 :(得分:0)
使用动态表单,将数据发送到控制器,解析数据服务器端。 我建议使用KnockoutJS,这是一个类似的例子:
答案 1 :(得分:0)
Thnx获得所有帮助......
这是最终奏效的:
我把它添加到我的资格控制器......
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' %>
我使用simple_form这是一个很棒的DSL FTW:D:D:D .....
一切都很好,因为想要:) ... Thnx为大家提供帮助...... 我发布在这里,所以像我这样的问题可以在将来解决:D ...
此致