Я хочу создать модель задачи, в которой есть много обязательных курсов.Но когда я создаю задание, выпадающее меню не привязывает к нему какие-либо курсы.(Как и в Task.first.courses возвращает nil, а атрибут course_id также равен nil).
Контроллер задач:
before_action :authenticate_company!, only: [:create, :destroy]
def create
@courses = Course.all
@task = current_company.tasks.build(task_params)
if @task.save
flash[:success] = "Task created!"
redirect_to @task
else
render 'new'
end
end
def new
@courses = Course.all
@task = Task.new
end
private
def task_params
params.require(:task).permit(:name, :description, files: [])
end
Модель курса:
belongs_to :task, optional: true
ЗадачаМодель:
has_many :courses
Add_task_id_to_courses Миграция:
def change
add_column :courses, :task_id, :integer
end
Add_course_id_to_tasks Миграция:
def change
add_column :tasks, :course_id, :integer
end
Tasks / new.html.erb:
<%= form_for(@task) do |f| %>
<div class="field">
<%= f.text_area :name, placeholder: "Task Name" %>
</div>
<div class="field">
<%= f.text_area :description, placeholder: "Add Description" %>
</div>
<div class="field">
<%= f.file_field :files, multiple: true %>
</div>
<div class="field">
<%= f.collection_select :course_ids, @courses, :id, :name, {include_blank: true}, {multiple: true} %>
</div>
<%= f.submit "Post", class: "btn btn-primary" %>
<% end %>