2013-11-25 51 views
0

我有兩個模型/視圖,UserPersonalInfo,我試圖調用_form.html.erb部分在'user#show'行動,但我「M得到一個錯誤:,而模型的路線被嵌套在當前視圖中的Rails 3

No route matches {:controller=>"personal_info"}

我懷疑的問題是,我PersonalInfo路線嵌套在User內航線和Rails沒有使用正確的,但我不知道如何使它使用正確的。下面是調用了表格行:

app/views/users/show.html.erb

<%= render :partial => "/personal_info/form", :locals => {personal_info: @personal_info } %>

app/views/personal_info/_form.html.erb

<%= form_for @personal_info, url: user_personal_info_index_path, html: { method: :post } do |f| %>

routes.rb

resources :users do 
    resources :personal_info 
end 

我是否必須在personal_info控制器中聲明某些內容或指定應用程序以使用users/:user_id/personal_info路由?

+0

考慮到你的'personal_info'控制器是在'應用程序/ controllers',您可以添加'控制器'選項,以'routes.rb'中的'resources'聲明爲:'資源:個人信息,控制器:'personal_infos'' – vee

+0

@vinodadhikary我仍然得到相同的錯誤信息,但我想我引用了一些錯誤某處.. – sp33k3rph433k

+0

在你的'f orm_for'聲明'url',你還需要傳入'user_id',即'<%= form_for @personal_info,url:user_personal_info_index_path(@user),html:{method::post} do | f | %>'。如果這不起作用,請發起聊天請求。在我看來,你的'資源:personal_info'應該是'resources:personal_infos'(複數)。 – vee

回答

0

我能把這個改變解決: <%= form_for @personal_info, url: user_personal_info_index_path, html: { method: :post } do |f| %>

到:

<%= form_for @personal_info, url: new_user_personal_info_index_path, html: { method: :post } do |f| %>