1
我正在开发一个有两种模式的网站:公司和联系人。我有一个显示公司信息的页面和一个添加联系人的链接。我的路线是这样的:Form_for嵌套对象
resources :companies do
resources :contacts
end
我的疑问是,我怎么能使用路径来创建此页面内一个新的联系人,并应如何是我的新创建接触控制器内部的方法提前
谢谢
我正在开发一个有两种模式的网站:公司和联系人。我有一个显示公司信息的页面和一个添加联系人的链接。我的路线是这样的:Form_for嵌套对象
resources :companies do
resources :contacts
end
我的疑问是,我怎么能使用路径来创建此页面内一个新的联系人,并应如何是我的新创建接触控制器内部的方法提前
谢谢
如果你做一个:rake routes
你会看到你的应用程序的所有可用路线。
用于创建新的联系人,你有这样的路线:
new_company_contact GET /companies/:company_id/contacts/new(.:format) contacts#new
这意味着你可以使用,将带你到相应的视图app/views/new.html.erb
new_company_contact_path
的辅助方法。而且,在contacts_controller
的new
方法,你就会有这样的事情:
def new
@contact = Contact.new
end
而且,你create
方法是这样的:
def create
@contact = Contact.new(contact_params)
if @contact.save
flash[:info] = "Contact saved successfully"
redirect_to root_url
else
render 'new'
end
end
请确保您有contact_params
私有方法您的contacts_controller
:
private
def contact_params
params.require(:contact).permit(:name, :email)
end
感谢您的回答!我只有一个问题...在我的edit.html.erb文件中,当我使用<%form_for(@company)do | f | %>它说我没有路径。我该如何解决它? – Morris
你能发布错误的堆栈跟踪吗?错过了哪条路呢?如果可能的话,发布另一个问题的细节,我会看看。 –
错误是这样的:未定义的方法'contacts_path' 当我使用<%= form_for(@contact)do | f | %> – Morris