簡體   English   中英

在Rails視圖中創建關聯模型和主要模型?

[英]Creating an associated model along with main model in rails view?

我正在使用以下代碼在視圖中創建一個下拉列表,以將模型與另一個模型相關聯。 這可行,但是我必須預先填充數據庫中的任務。 我希望能夠在項目創建期間創建任務,而不僅僅是選擇已經存在的任務。

  <%= f.label :task %>
  <%= f.collection_select( :task_id,
              Task.all,
              :id, :name, {selected: @project.task_id, include_blank: false}) %>

據我了解,我也將必須在控制器中執行此操作,但是我看到的許多代碼已經過時了,我想以Rails 4的方式進行操作。 謝謝!

如果要創建新項目並嘗試創建任務,則需要使用nested model formaccepts_nested_attributes_for ):

#app/models/Project.rb
def Project < ActiveRecord::Base
    has_many :tasks
    accepts_nested_attributes_for :tasks
end

#app/controllers/projects_controller.rb
def new
    @project = Project.new
    @project.tasks.build #-> do this for as many tasks as you want
end

def create
    @project = Project.new(project_params)
    @project.save
end

private

def project_params
    params.require(:project).permit(:new, :project, :attrs, tasks_attributes: [:task_name])
end


#app/views/projects/new.html.erb
<%= form_for @project do |f| %>
   <%= f.text_field :name %>
   <%= f.fields_for :tasks do |t| %>
       <%= t.text_field :name %>
   <% end %>
<% end %>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM