0

Так что у меня была ситуация, когда пользователи принадлежат учетным записям.Попытка создать удаление link_to для объекта nested_attributes в его родительском представлении

Я перечисляю пользователь для каждой учетной записи следующим образом:

for @user in @account.users.where(['email <> ?', 'null']).sort! {|b, a| a.id <=> b.id} 

Для каждого пользователя, я хочу, чтобы иметь возможность предложить функциональные возможности для удаления с помощью ссылки. У меня есть следующие:

<p>Are you sure you want to delete <%=h @user.firstname %>?: 
<%= link_to "Yes", account_users_path(@user), :remote => true, :method => :delete, :class => "button" %> 
<span class="button canceldeleteobject"> No </span></p> 

Однако, когда я запускаю это я получаю:

Started DELETE "/accounts/28/users" for ::1 at 2012-03-29 09:42:39 -0400 

AbstractController::ActionNotFound (The action '28' could not be found for AccountsController): 

Идентификатор пользователя «28», где в качестве эккаунтами «15», поэтому я чувствую, что есть что-то делать с элементом account_users_path, но любой свет, который вы могли бы пролить на лучший способ сделать этот тип удаления nested_attribute, будет с большой благодарностью.

EDIT:

Маршрутов выглядеть следующим образом:

devise_for :users, :controllers => { :sessions => "sessions" }, :skip => :registrations do 
    get 'users/edit' => 'registrations#edit', :as => 'edit_user_registration' 
    put 'users' => 'registrations#update', :as => 'user_registration' 
    delete 'users' => 'registrations#destroy', :as => 'destroy_user_registration'  
    end 

    resources :accounts do 
    resources :assessments, :areas, :risks, :controls, :persons, :roles, :mitigations, :comments, :users 
    collection do 
     put :update_attribute_on_the_spot 
     get :get_attribute_on_the_spot 
    end 
    end 
+0

Как выглядит ваш файл 'routes.rb' для': accounts' и ': users'? –

ответ

0

Вы должны использовать account_user_path(@account, @user) вместо (ты множественный users, и не включает в себя родительский account).

+0

Спасибо Дилан - место на ответе. –