1

わかりました、これは私を曲がり角の周りに駆り立てています。[この質問に関連する]3つのモデルがあります:Outfit、Outfit_relationship、Answer。衣装は親モデルであり、他は子供です。Outfitモデルは次のようになります。

class Outfit < ActiveRecord::Base
  attr_accessible :user_id, :outfit_origin_id, :outfit_parent_id, :outfitrelationship_id #review before going live
  attr_accessible :item_id, :image_size_height, :image_size_width, :image_x_coord, :image_y_coord, :zindex, :outfit_id
  attr_accessible :description, :question_id, :user_id, :outfit_id

  has_many :answers
  has_many :outfit_relationships

  accepts_nested_attributes_for :outfit_relationships, :allow_destroy => :true
  accepts_nested_attributes_for :answers

2番目と3番目のattr_accessibleは、他のモデルの属性にアクセスするためのものであることに注意してください。これが絶対に必要かどうかはわかりませんが、ある記事ではそうだと言っているものもあれば、そうではないと言っているものもあるので、入れました。

1つのボタンで公開したいこのデータのマルチモデルフォームを作成しました。コードは次のとおりです。

<%= form_for(@outfit) do |post_outfit| %>

  <%= post_outfit.fields_for @outfit.outfit_relationships do |build| %>
    <table>
     <tr>
        <td>X Coord <%= build.text_area :image_x_coord, :size => '1x1' %></td>
        <td>Y Coord <%= build.text_area :image_y_coord, :size => '1x1' %></td>
        <td>Z Index <%= build.text_area :zindex, :size => '1x1' %></td>
        <td>Height <%= build.text_area :image_size_height, :size => '1x1' %></td>
        <td>Weight <%= build.text_area :image_size_width, :size => '1x1' %></td>
     </tr>
    </table>
  <% end %>

  <%= post_outfit.fields_for @outfit.answers do |build| %></br></br>
    <%= image_tag current_user.fbprofileimage, :size => "40x40" %></br>
    <%= current_user.name %></br>
    Comment: <%= build.text_area :description, :size => '10x10' %>
  <% end %>

  <%= post_outfit.fields_for @outfit do |build| %> </br>
   origin id: <%= build.text_area :outfit_origin_id, :size => '1x1' %></br>
   parent id:  <%= build.text_area :outfit_parent_id, :size => '1x1' %></br>
  <% end %>     

  <div id="ss_QID_actions_container">
    <%= post_outfit.submit "Submit checked", :class => "btn btn-small btn-primary" %>
  </div>
<% end %>

そして、これが衣装コントローラーの関連するバットです:

def new 
    @outfit = Outfit.new
    @outfit.save
    @outfit.answers.build
    @outfit.outfit_relationships.build

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @outfit }
    end
  end

def create
@outfit = Outfit.new(params[:id])
@comment = @outfit.answers.create(params[:answer])
@outfitrelationship = @outfit.outfit_relationships.create(params[:outfit_relationship])
redirect_to outfit_path(@outfit)

したがって、問題はID以外にデータベースに何も書き込まれないことです。私はここで何か愚かなことをしていると確信していますが、その理由はわかりません。

4

0 に答える 0