У меня есть Active Admin gem для моего ruby on rails project. То, что я хотел бы сделать, это создать продукт и иметь 2 блока выбора (1-Категория, 2-Департамент) в той форме, где вторая изменяет его содержимое на основе первого. После бесчисленных часов поиска я все еще не могу заставить это работать.Active Admin inested select
class Product < ActiveRecord::Base
belongs_to :category, dependent: :destroy, counter_cache: true
has_one :department, through: :category
end
class Category < ActiveRecord::Base
belongs_to :department, counter_cache: true
has_many :products
end
class Department < ActiveRecord::Base
end
Поэтому я хотел бы сделать это потому, что некоторые отделы могут иметь такое же название категории, которая была бы запутанным и было бы добавить продукт в неправильном отделе.
Я попытался question 9579402, но, как я понимаю его вопрос в том, что у него была только две модели, и он создает подкатегорию из выбранной категории
Heres знакомой вещи, но он использует запрос прибудет АЯКС Git/Dglgmut/6328501
Попытка question 9579402 получить мне ошибку:
Started POST "/admin/products/change_categories" for ::1 at 2016-03-30 14:51:09 +0300
ActionController::RoutingError (No route matches [POST] "/admin/products/change_categories"):
Это то, что я имею в routes.rb
routes.rb = post 'change_categories' =>'products#change_categories'
http://localhost:3000/rails/info/routes = change_categories_path POST /change_categories(.:format) products#change_categories
Я думаю, это потому, что я могу использовать действия членов для активного администратора, поэтому я попытался его
member_action :change_categories, :method => :get do
@categories = Department.find_by_id(params[:department_id]).try(:categories)
render :text=>view_context.options_from_collection_for_select(@categories, :id, :category_number)
end
Но получил ту же ошибку, как и раньше. Любая помощь будет оценена, спасибо.
UPDATE: Im новичок в этом, но если им-правильные, change_categories должны быть в категории контроллера, потому что ищет этот метод в контроллере продукта,
POST "/admin/products/change_categories"
Поэтому я добавил категории ресурсов для активного администратора и добавил этот метод к категории контроллеров, но есть ли теперь способ использовать этот контроллер? Что-то вроде:
f.input :department, :input_html => { :onchange => remote_request(controller => "categories", :post, :change_categories, {:department_id=>"$('#department_id').val()"}, :category_id) }
Я думаю, что добавление 'get '/ admin/products/change_categories" => "products # change_categories" 'будет выполнять вашу работу –