Я новичок в ruby и пытаюсь получить параметры locations
, которые я назначаю в форме для отображения на странице course
показа
Когда я запускаю команду course.locations= [location]
в рельсахконсоль работает нормально, однако как мне заставить его показывать без этой команды для каждого course
?Я пропустил где-нибудь шаг?
модель - course.rb
has_and_belongs_to_many :locations
модель - location.rb
has_and_belongs_to_many :courses
show.html.erb
<% @course.locations.each do |location| %>
<%= link_to location.name, courses_path(:id => location.id, :table => "Location") %>
<% end %>
<%= @course.description %>
контроллер курсов
class CoursesController < ApplicationController
def new
@course = Course.new
end
def index
@course = Course.all
end
def show
@course = Course.find(params[:id])
end
def create
@course = Course.new(course_perms)
if @course.valid?
@course.save
flash[:success] = "Category Made Successfully - #{@course.name}"
redirect_to @course
else
render 'new'
end
end
def course_perms
params.require(:course).permit([:name, :desc, :locations => [], :categories => []])
end
end
форма
<%= form_for(@course) do |f| %>
<%= f.label :name %>
<%= f.text_field :name, class: 'form-control' %>
<%= f.label :desc %>
<%= f.text_field :desc, class: 'form-control' %>
<%= f.label :locations %>
<%= f.select :locations, options_from_collection_for_select(@locations, :id, :name, course.locations.ids)%>
<%= f.label :categories %>
<%= f.select :categories, options_from_collection_for_select(@categories, :id, :name)%>
<%= f.submit yield(:button_text), class: "btn btn-primary" %>
<% end %> ```