Я пытаюсь заставить мой bootstrap_form collection_select работать, но у меня возникли некоторые трудности. Я использую Bootstrap 4 для контекста.
У меня есть коллекция тегов, и я бы хотел, чтобы пользователь мог выбрать несколько тегов для добавления к одному событию. Я не могу выбрать несколько тегов. В настоящее время выбор отображается с действительными параметрами выбора. У меня также есть проблема с моей отправкой.
_form. html .erb:
<%= f.collection_select :tags, Tag.all, :id, :name, hide_label: true, options: { placeholder: "Tag Id", multiple: true}, html_options: { input_group_class: 'input-group-lg' } %>
Events_controller.rb (Controller):
def create
@event = Event.new(event_params)
respond_to do | format |
if @event.save
results = Geocoder.search(@event.location)
lat, long = results.first.coordinates
@event.location_lat = lat
@event.location_long = long
@event.save
UserEventRelationship.create(event_id: @event.id, user_id: current_user.id, role_type_id: 0)
format.html { redirect_to @event, notice: 'Event was successfully created.' }
format.json { render json: @event, status: :created, location: @event }
else
format.html {render 'new'}
format.json {render json: @event.errors, status: :unprocessable_entity }
end
end
end
Событие .rb (модель):
class Event < ApplicationRecord
has_many :user_event_relationships
has_many :users, through: :user_event_relationships
has_and_belongs_to_many :tags
has_one_attached :picture
validates :name, :location, :date_to, :date_from, presence: true
validate :valid_date_range_required
end
Tag.rb:
class Tag < ApplicationRecord
has_and_belongs_to_many :events
end
Присоединение к таблице миграции:
class CreateJoinTableEventsTags < ActiveRecord::Migration[6.0]
def change
create_join_table :events, :tags do |t|
t.index [:event_id, :tag_id]
t.index [:tag_id, :event_id]
end
end
end
Ошибка:
NoMethodError - undefined method `each' for "10":String:
app/controllers/events_controller.rb:30:in `create'