NoMethodError: undefined method `<<' for #

4686 단어 ActiveRecordRails
전제 조건

나는 만다라트의 응용 프로그램을 하고 있다.
만다라트라는 것은 아이디어를 내는 방법 중의 하나이다
이런 느낌으로 생각을 연상하는 느낌.
오류가 발생했습니다.

class MandalartsController < ApplicationController
  def index


    # 最初から配列の要素を9つ入れとく
    # 配列の要素の中身があれば、何もしない
    # 配列の要素の中身があれば、""の要素を入れとく


    @mandalarts = Mandalart.all
    binding.pry

    if @mandalarts.count < $mandalart_blocks_num

      ($mandalart_blocks_num - @mandalarts.count).times do |mandalart|
        mandalart = Mandalart.create(text: '')
        @mandalarts << mandalart
      end
    end
  end

 NoMethodError:        undefined method `<<' for #<Mandalart::ActiveRecord_Relation:0x000055f2bd5bb070>
이런 착오가 발생했다.@mandalarts << mandalart의 부분에 오류가 발생했습니다.active_record 대상:?배열 방식<<으로는 값을 추가할 수 없습니다.
app/controllers/mandalarts_controller

class MandalartsController < ApplicationController
  def index


    # 最初から配列の要素を9つ入れとく
    # 配列の要素の中身があれば、何もしない
    # 配列の要素の中身があれば、""の要素を入れとく


    @mandalarts = Mandalart.all

    if @mandalarts.count < $mandalart_blocks_num
      ($mandalart_blocks_num - @mandalarts.count).times do |mandalart|
        Mandalart.create(text: '')
      end
      @mandalarts = Mandalart.all
    end

  end


그러므로
만약 배열 내용이 부족하면$mandalart_blocks_num분(9개)
부족한 부분, 제작 기록.
그리고 @mandalarts = Mandalart.allif에서
첫 번째@mandalarts = Mandalart.all와 타격하지 않는다.
spec/requests/mandalarts_spec.rb

    it "works! (now write some real specs)" do
      get root_path
      expect(response).to have_http_status(200)
    end


이런 시험도 통과했다.
만약 음반이 $mandalart_blocks_num분, $mandalart_blocks_num분 없다면
나도 음반 제작 여부를 확인할 수 있는 테스트를 쓰고 싶다.

좋은 웹페이지 즐겨찾기