1

我有一个学生,student_parent 和 address_detail 表我想在 address_detail 表中添加学生和它的父母(父亲和母亲)地址,我在表之间有以下关系

学生:- has_many :student_parents has_many :address_details

Student_parent: belongs_to:student has_many:address_detail

地址详细信息: belongs_to:学生belongs_to:student_parent

在 address_detail 表格中,我只有父亲和母亲的下拉列表我想手动添加学生条目我该怎么做,这是我的 address_detail 表格``

    <%= simple_form_for @address_detail, :html => { :class => 'form-horizontal' } do |f| %>
<div class="control-group">
  <label  class = "control-label"> Address Correspond To <abbr title="required">*</abbr></label>
  <div class="controls">
    <%= f.collection_select(:student_parent_id, student_parent_relation_collection , :id, :relation_to_student, {:prompt => true}, :required =>true  )%>
    <%= f.hidden_field :student_id, :value => current_student_id %>
  </div>
</div>

…………

这是我的 Address_correspond_to 下拉方法的 Helper 方法

# return collection of parent relation to student

def student_parent_relation_collection

if current_user != nil
  student =  Student.find_all_by_user_id(current_user.id)
  logger.info "student_is = #{student}"
  if student != nil
  return  StudentParent.find_all_by_student_id(student)
 end
end

结尾

当前输出是父亲母亲

我想出去 学生 爸爸 妈妈

4

2 回答 2

0
如果 current_user
  学生 = Student.find_by_user_id(current_user.id)
  如果是学生,则返回 [学生] + student.student_parents
结尾
于 2013-07-31T11:09:36.680 回答
0
Class AddressDetail < ActiveRecord::Base

  def student_and_parents
    [student, student_parent]
  end

end

然后,在视图中,您可以参考

address_detail.student_and_parents

或在用户

Class User < ActiveRecord::Base

  has_many :students
  has_many :student_parents, :through => :students

  def students_and_parents
    [students, student_parents].compact.flatten
  end

end

你可以参考

current_user.try(:students_and_parents)
于 2013-08-02T21:01:46.153 回答