0

関連するモデルから別のモデルに値の配列を配置したいと考えています。生徒が 1 日到着したかどうかを登録するサイトを作成しています。だから私は多くの「学生モデル」を持つ「日モデル」を持っています。同僚が学校にいる生徒を確認し、多くの生徒がいる 1 日インスタンスを作成できるようにしたいと考えています。

複数のパラメータを取得できますが、複数の学生 ID を日モデルに保存できません。これは私が今持っているものです。

デイコントローラー

    class DaysController < ApplicationController
    def new
        @days = Day.new
        @students = Student.all
    end
    def create
    @day = Day.new(params[:days])
    if @day.save
      redirect_to @day, :notice => "Successfully created student."
    else
      render :action => 'new'
    end
  end

  def show
    @day = Day.find(params[:id])

  end
end

デイモデル

class Day < ActiveRecord::Base
 attr_accessible :student_id
  has_many :students
end

学生モデル

    class Student < ActiveRecord::Base
  attr_accessible :name, :group_id, :phone, :parentsphone
  validates :phone, :numericality => {:only_integer => true}
  belongs_to :days
end

ビュー/日/new.html.erb

<%= simple_form_for @days do |f| %>
<%= f.collection_check_boxes :students,
                             Student.all,
                             :id,
                             :name,
                             :input_html => { :class => 'checkbox' },
                             :checked => @days.students %>


<%= f.submit "Skapa dag" %>
<% end %>

痕跡

Started POST "/days" for 127.0.0.1 at 2013-04-12 22:52:11 +0200
Processing by DaysController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"yCwSiZCVR2Cy9qDMnQtPfQt9hysl975pqjW8nFPI828=", "day"=>{"students"=>["5", "14", "15", ""]}, "commit"=>"Skapa dag"}
   (0.1ms)  begin transaction
  SQL (18.3ms)  INSERT INTO "days" ("created_at", "student_id", "updated_at") VALUES (?, ?, ?)  [["created_at", Fri, 12 Apr 2013 20:52:11 UTC +00:00], ["student_id", nil], ["updated_at", Fri, 12 Apr 2013 20:52:11 UTC +00:00]]
   (1.3ms)  commit transaction
Redirected to http://localhost:3000/days/5
Completed 302 Found in 25ms (ActiveRecord: 19.7ms)
4

1 に答える 1

0

問題はデータベース ロジックにあります。これが機能するには、 has_many_through 関係が必要です。

このガイドを試してくださいhttp://guides.rubyonrails.org/association_basics.html#the-has_many-through-association

于 2013-04-13T09:01:24.157 に答える