1

私は学生モデルと審判モデルを持っています。学生に、審判に連絡するための情報を要求するネストされた領域があるフォームに記入してもらいたい。私はactiveadminを使用しており、rails3.2.6でformtasticを使用しています。

私の問題は、new_student_pathに移動すると、「undefined method`with_indifferent_access'」が表示されることです。

student_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 %
4

1 に答える 1

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
于 2012-09-11T15:50:23.690 に答える