我有学生模特和裁判模特。我希望学生填写一个表格,该表格有一个嵌套区域,要求信息联系裁判。我正在使用activeadmin和formtastic with rails 3.2.6。
我的问题是当我导航到new_student_path时,我得到“未定义的方法`with_indifferent_access'”
students_controller.rb:
def new
@student = Student.new
@student.referee = Referee.new
end
学生模特:
class Student < ActiveRecord::Base
has_one :referee
accepts_nested_attributes_for :referee
attr_accessible :firstname, :lastname, :statement
attr_accessible :referee, :referee_attributes
alias_method :referee=, :referee_attributes=
学生的new.html.erb:
<%= semantic_form_for @student do |f| %>
<%= f.semantic_errors :state %>
<%= f.inputs do %>
<%= f.input :firstname %>
<%= f.input :lastname %>
<%= f.semantic_fields_for :referee do |ff| %>
<% if h.object.new_record? %>
<%= ff.inputs do %>
<%= ff.input :firstname, :label => "Reference's First Name" %>
<%= ff.input :lastname, :label => "Reference's Last Name"%>
<%= ff.input :email, :label => "Reference's Email"%>
<% end %>
<% end %>
<% end %
答案 0 :(得分:3)
进行了以下修改,现在可以使用。
学生模特:
has_one :referee
accepts_nested_attributes_for :referee
attr_accessible :firstname, :lastname, :statement
attr_accessible :referee, :referee_attributes
#alias_method :referee=, :referee_attributes= - removed this line (preventing method from being created)
然后删除了未在嵌套表单上显示的属性的验证,一切正常。
另外
@student.referee.build
仅适用于has_many关联。所以不得不使用
@student.referee = Referee.new
或
@student.build_referee