2017-08-04 99 views
-1

後,有許多指導和解決問題的林混淆如何創建此的form_for嘗試了很多次,我有這樣的代碼......的form_for 2拉特深嵌套對象錯誤紅寶石

路線

Rails.application.routes.draw do 
    get 'welcome/index' 

    resources :flows do 
    resources :fmodules do 
     resources :levers 
    end 
    end 

    root 'welcome#index' 

end 

  welcome_index GET /welcome/index(.:format)          welcome#index 
    flow_fmodule_levers GET /flows/:flow_id/fmodules/:fmodule_id/levers(.:format)   levers#index 
         POST /flows/:flow_id/fmodules/:fmodule_id/levers(.:format)   levers#create 
new_flow_fmodule_lever GET /flows/:flow_id/fmodules/:fmodule_id/levers/new(.:format)  levers#new 
edit_flow_fmodule_lever GET /flows/:flow_id/fmodules/:fmodule_id/levers/:id/edit(.:format) levers#edit 
    flow_fmodule_lever GET /flows/:flow_id/fmodules/:fmodule_id/levers/:id(.:format)  levers#show 
         PATCH /flows/:flow_id/fmodules/:fmodule_id/levers/:id(.:format)  levers#update 
         PUT /flows/:flow_id/fmodules/:fmodule_id/levers/:id(.:format)  levers#update 
         DELETE /flows/:flow_id/fmodules/:fmodule_id/levers/:id(.:format)  levers#destroy 
      flow_fmodules GET /flows/:flow_id/fmodules(.:format)        fmodules#index 
         POST /flows/:flow_id/fmodules(.:format)        fmodules#create 
     new_flow_fmodule GET /flows/:flow_id/fmodules/new(.:format)       fmodules#new 
     edit_flow_fmodule GET /flows/:flow_id/fmodules/:id/edit(.:format)     fmodules#edit 
      flow_fmodule GET /flows/:flow_id/fmodules/:id(.:format)       fmodules#show 
         PATCH /flows/:flow_id/fmodules/:id(.:format)       fmodules#update 
         PUT /flows/:flow_id/fmodules/:id(.:format)       fmodules#update 
         DELETE /flows/:flow_id/fmodules/:id(.:format)       fmodules#destroy 
        flows GET /flows(.:format)            flows#index 
         POST /flows(.:format)            flows#create 
       new_flow GET /flows/new(.:format)           flows#new 
       edit_flow GET /flows/:id/edit(.:format)          flows#edit 
        flow GET /flows/:id(.:format)           flows#show 
         PATCH /flows/:id(.:format)           flows#update 
         PUT /flows/:id(.:format)           flows#update 
         DELETE /flows/:id(.:format)           flows#destroy 
        root GET /               welcome#index 

車型

class Lever < ApplicationRecord 
    belongs_to :fmodel 
end 

class Fmodule < ApplicationRecord 
    belongs_to :flow 
    has_many :levers, dependent: :destroy 
end 

控制器方法

class LeversController < ApplicationController 

    before_action :load_fmodule 

    # /flows/1/fmodules/1/levers/new 
    def new 
     @lever = @fmodule.levers.build 
    end 

    private 
     def load_fmodule 
      @fmodule = Fmodule.find(params[:fmodule_id]) 
     end 
end 

形式...

<%= form_for ([@flow, @fmodule, @lever]) do |l| %> 

當然的​​只是一個假設,我需要幫助這裏。我試圖用_form創建new視圖,其中包含form_for。我在editshow視圖中也使用這個_form

回答

0

THX所有,我固定它指定在的form_for

<%= form_for([@flow, @fmodule, @lever], url: flow_fmodule_levers_path) do |l| %>

0

這會幫助你製作你的表格。

<%= form_for @flow, do |u| %> 
    <%= fields_for @fmodule do |j| %> 
    <%= fields_for @lever do |l| %> 

這裏@flow表單包含fmodule和槓桿字段。

+0

林不知道有關的URL,好像正在試圖因爲現在紅寶石說'參數是保存一個新的'flow'缺少或值爲空:流量。 在這種情況下,我正在製作'新'槓桿'的視圖' – Pistorius

+0

讓你的問題更加清晰。 – 2017-08-04 17:13:11

+0

我需要爲2層深嵌套對象(槓桿)創建'new'視圖,爲此im試圖創建一個form_for像我在其他嵌套對象(fmodel)中,但這很容易,因爲是一個嵌套的簡單(1 lvl)。這裏是'<%= form_for([@flow,@fmodule])do | f | %>' – Pistorius