Rails:为其他模型的collection_select添加价值

时间:2019-01-13 22:16:24

标签: ruby-on-rails collection-select

如果可用的选项不包含此值,我需要能够向collection_select添加一个新值,但是,该值需要是在不同模型中创建的新记录。

我有一个任务模型,其中一个可以创建新任务,每个任务都有一个负责完成任务的人员:

    class Task < ApplicationRecord
      belongs_to :project
      belongs_to :person
      belongs_to :user
    end

Person模型如下:

      class Person < ApplicationRecord
        belongs_to :company
        has_many :tasks
        belongs_to :user
      end

在我的任务视图中,我具有用于使用collection_select选择负责任务的人员的代码:

    <%= f.collection_select :person_id , current_user.people.order(:last_name), :id, :last_name, {prompt: "Select a person"}, {class: "form-control"} %>

假设在我的collection_select中,我有1)John和2)Peter,但是我需要为Jane分配任务,此刻,我需要离开Task表单并转到Person表单,将Jane添加为新的人员,然后返回并创建新的任务记录。

我想做的事使其更易于使用。我希望我可以在collection_select下拉列表中添加一个选项(例如“ Add new person”),该选项在被选中时会使用一些AJAX或其他魔法将我直接带到新的人形(作为弹出屏幕或嵌套表单),并且一旦我将Jane添加为新记录,它就会回到任务表。

这可能吗?

0 个答案:

没有答案