Об операторе "<<" в этом случае с ассоциацией Rails - PullRequest
10 голосов
/ 26 октября 2011

Я новичок в Ruby on Rails. В приложении на Rails я увидел такой код:

В модель , есть класс Car:

class Car < ActiveRecord::Base
  ...
end

В контроллере есть метод " some_method "

class CarsController < ApplicationController

   def some_method
      @my_car = Car.new()

      #What does the following code do? 
      #What does "<<" mean here?
      @my_car.components << Component.new()
   end


end

Мне нужно задать три вопроса:

1. В коде контроллера @my_car.components << Component.new() что он делает? Что значит <<?

2. Есть ли какие-либо другие применения "<<" в Ruby-On-Rails или в Ruby? </p>

3. Должен ли класс Car явно определять ассоциацию has_many с классом Component, если используется " << </strong>" Или это " < <</strong> "может использоваться для добавления новой ассоциации в Car, даже если ассоциация не определена в Car классе явно?

Ответы [ 3 ]

18 голосов
/ 26 октября 2011

После редактирования:

Точка 1

@my_car.components << Component.new()

совпадает с

@my_car.components.push(Component.new())

Точка 2

Позволяет добавлять элементы в коллекцию или даже объединять строки.

Некоторые ссылки:

обратите внимание, что вы можете перегрузить или определить свой собственный.

Точка 3

Отношения должны быть явными, иначе Rails не сможет создать адекватные методы: @my_car.components не будет иметь никакого смысла.

1 голос
/ 26 октября 2011

Относительно 1. & 2. я суммировал различные значения << здесь .

0 голосов
/ 26 октября 2011

<< добавляет элемент в массив. </p>

Итак, в приведенном выше примере вы добавляете новый компонент в массив Car.components.Это часть Ruby, и вы увидите, что он часто используется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...