0

Мне нужна ваша помощь!Полиморфная ассоциация: Создать форму документа

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

Если пользователь в данный момент выбирает проект, идентификатор не будет сохранен в documentable_id только documentable_type, но с задачами работает отлично.

Где моя ошибка?

Document.rb

belongs_to :documentable, polymorphic: true 
belongs_to :project 
belongs_to :task 

Project.rb

has_many :documents, :as => :documentable 


Task.rb

has_many :documents, :as => :documentable 


documents_controller.rb

def create 
    @document = Document.new(document_params) 
    @document.user_id = current_user.id 
    if @document.save 
    redirect_to @document 
    else 
    render "new" 
    end 
end 
def document_params 
    params.require(:document).permit(:attachment, :is_unlocked, :is_paid, :brutto, :netto, :has_skonto, :supplier_id, :due_at, :tax, :number, :documentable_id, :documentable_type) 
end 

документы/_form.html.erb

<div class="form-group"> 
    <%= f.collection_select :documentable_id, Project.all, :id, :name, { prompt: "Projekt zuordnen"} %> 
    </div> 

    <div class="form-group"> 
    <%= f.collection_select :documentable_id, Task.all, :id, :id, { prompt: "Aufgabe zuordnen"} %> 
    </div> 

ответ

0

Если у вас есть 2 выпадающие с тем же именем, только второй один будет включен в параметры. Функция рельсов, которая полезна для некоторых вещей.

Вы можете добавить выпадающие меню или включить/отключить их динамически, чтобы обойти это.

+0

Спасибо за ваш быстрый ответ! Включить/отключить с помощью javascript или есть такая функция в рельсах? –

Смежные вопросы