Попытка создать ссылку 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, был бы очень оценили.

РЕДАКТИРОВАТЬ:

Маршруты выглядят так:

  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

1 ответ

Решение

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

Другие вопросы по тегам