1
resources :accounts, shallow: true do 
    resources :textnotes 
    end 

дает мнеRails 4 маршрутов с simple_form и неглубоких вложенными ресурсами

account_textnotes GET /accounts/:account_id/textnotes(.:format)  textnotes#index 
        POST /accounts/:account_id/textnotes(.:format)  textnotes#create 
new_account_textnote GET /accounts/:account_id/textnotes/new(.:format) textnotes#new 
     edit_textnote GET /textnotes/:id/edit(.:format)     textnotes#edit 
      textnote GET /textnotes/:id(.:format)      textnotes#show 
        PATCH /textnotes/:id(.:format)      textnotes#update 
        PUT /textnotes/:id(.:format)      textnotes#update 

Когда я пытаюсь создать новую заметку

http://0.0.0.0:3000/accounts/4/textnotes/new 
<%= simple_form_for(@textnote) do |f| %> 

Я получаю следующее сообщение об ошибке:

NameError in Textnotes#new 
Showing /Users/xyz/rails_projects/crm/app/views/textnotes/_form.html.erb where line #1 raised: 

undefined method `textnotes_path' for #<#<Class:0x007f8204f37360>:0x007f8204be4fa0> 
+0

Я не знаю simple_form, но кажется, что вам нужно будет поставить как '@ textnote', а также' @ account' объекта к этому методу для него работать? –

+0

вы объявили 'textnote_path' не' textnotes_path'. может это проблема? и что такое объект @ @ textnote? –

ответ

0

Вам нужно добавить url метр до simple_form_for с указанием accounts_textnotes_path?

С настройкой неглубокой вложенности вы отправляете на индексный путь родительского ресурса (который, как я полагаю, выводит ваш маршрут выше).

Если это не сработает, вы всегда можете попробовать указать строковый путь или действие.

(Как всегда, http://edgeguides.rubyonrails.org/form_helpers.html и http://guides.rubyonrails.org/routing.html может помочь.)

0

Вы были близки. Вы должны указать родительский счет, как это:

<%= simple_form_for([@account, @textnote]) do |f| %> 
Смежные вопросы