我的领土模型
class Territory < ActiveRecord::Base
attr_accessible :name, :publisher
has_many :addresses, :dependent => :destroy
validates :name, :presence => true, :uniqueness => true
end
我的地址模型
class Address < ActiveRecord::Base
attr_accessible :name, :street, :district, :note
belongs_to :territory
end
我有一张用于创建区域的表单和一个显示单一区域的视图。
我添加了一个表单,用于向地区显示视图添加地区。
这是我的地址控制器
class AddressesController < ApplicationController
def new
@address = Address.new
end
def create
@address = territory.addresses.build(params[:address])
if @address.save
flash[:success] = "Address saved!"
redirect_to '/territories'
else
redirect_to '/territories'
end
end
end
看起来我无法掌握当前领土的身份,因此无法将地址连接到领土。我怎么能这样做?
此外,在保存之后我想显示当前视图,即再次显示区域显示视图。没有显示如何重定向......
我的路线
TerritoryManagement::Application.routes.draw do
resources :addresses
resources :territories
end
由于 托马斯
答案 0 :(得分:0)
您需要使用嵌套资源,official Routing Guide中对此进行了解释。这个嵌套资源的另一个很好的例子是official Getting Started Guide。
有了这个,当您为该地区创建一个新地址时,您应该在params[:territory_id]
中收到一个AddressesController
变量,然后您可以通过这样做找到Territory
:
Territory.find(params[:territory_id])
但不是我在这里重复一遍,我真的建议你阅读这两本指南。