后,有许多指导和解决问题的林混淆如何创建此的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
。我在edit
和show
视图中也使用这个_form
林不知道有关的URL,好像正在试图因为现在红宝石说'参数是保存一个新的'flow'缺少或值为空:流量。 在这种情况下,我正在制作'新'杠杆'的视图' – Pistorius
让你的问题更加清晰。 – 2017-08-04 17:13:11
我需要为2层深嵌套对象(杠杆)创建'new'视图,为此im试图创建一个form_for像我在其他嵌套对象(fmodel)中,但这很容易,因为是一个嵌套的简单(1 lvl)。这里是'<%= form_for([@flow,@fmodule])do | f | %>' – Pistorius