2017-08-04 9 views
-1

après essayer à plusieurs reprises avec de nombreux guides et problèmes résolus Im confus avec la façon de créer cette form_for, j'ai ce code ...form_for avec 2 erreurs d'objets lvl niché au fond de rubis

Routes

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 

modèles

class Lever < ApplicationRecord 
    belongs_to :fmodel 
end 

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

méthodes contrôleurs

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 

la forme ...

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

Bien sûr, le [@flow, @fmodule, @lever] est juste une hypothèse, je besoin d'aide ici. Im essayant de créer la vue new avec un _form qui contient le form_for. Ill utiliser ce _form dans le edit et show voir aussi

Répondre

0

Thx pour tous, je l'ai fixé en spécifiant l'URL dans le form_for

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

0

Cela vous aidera à faire votre forme.

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

Ici, le formulaire @flow contient les champs fmodule et levier.

+0

Je ne suis pas sûr de cela, il semble que tente de sauver une nouvelle 'flow' parce que maintenant Ruby dit est' param manquant ou la valeur est vide: flow'. Je fais la «vue» d'un «nouveau» levier dans ce cas – Pistorius

+0

Rendez votre question plus claire. –

+0

J'ai besoin de créer la vue 'new' pour 2 niveaux d'objets imbriqués profonds (levier), pour cela j'essaie de créer une forme_for comme je l'ai dans mon autre objet imbriqué (fmodel) mais c'était facile parce qu'un simple imbriqué (1 lvl). Voici le '<% = form_for ([@flow, @fmodule]) do | f | %> ' – Pistorius