Я использую наследование одной таблицы в ROR3, поэтому я создал следующие модели:
class Promotion < ActiveRecord::Base
...
end
class CreditPromotion < Promotion
end
class DebitPromotion < Promotion
end
Затем я создал общую форму в частичном представлении
<%= form_for([:admin, @promotion]) do |f| %>
#Many fields for promotion
<% end %>
В новом действии эта формаработать очень хорошоОднако в действии редактирования выведите это сообщение об ошибке:
NoMethodError in Admin/promotions#edit
Showing /home/mperez/Proyectos/Habitue/commerce/commerce/app/views/admin/promotions/_form.html.erb where line #48 raised:
undefined method `admin_debit_promotion_path' for #<#<Class:0x7fcf57ada178>:0x7fcf57ad6820>
Extracted source (around line #48):
45: });
46: </script>
47:
48: <%= form_for([:admin, @promotion]) do |f| %>
49: <% if @promotion.errors.any? %>
50: <div id="error_explanation">
51: <h2><%= pluralize(@promotion.errors.count, "error") %> prohibited this promotion from being saved:</h2>
Обновление: ДОБАВИТЬ МАРШРУТЫ
Rails3::Application.routes.draw do
# Administration
namespace :admin do
match 'dashboard/update_cities' => 'dashboard#update_cities', :as => :update_cities
match 'dashboard/update_departments' => 'dashboard#update_departments', :as => :update_departments
match 'dashboard/update_towns' => 'dashboard#update_towns', :as => :update_towns
match 'promotions/unlimmited_quota' => 'promotions#unlimmited_quota', :as => :unlimmited_quota
match 'promotions/unlimmited_limit_per_user' => 'promotions#unlimmited_limit_per_user', :as => :unlimmited_limit_per_user
root :to => 'dashboard#index'
resources :settings
match '/settings/update_settings' => 'settings#update_settings', :requirements => { :method => :post }
resources :announcements
resources :commits
resources :sellers
resources :commerces
resources :commerce_visits
resources :promotions do
collection do
post :load_promotion_fields
end
end
#resources :debit_promotions, :controller => :promotions
#resources :credit_promotions, :controller => :promotions
#resources :gift_promotions, :controller => :promotions
resources :store_points
match '/users/search' => 'users#search', :requirements => { :method => :get }
resources :users do
member do
put :suspend
put :unsuspend
put :activate
delete :purge
put :reset_password
get :set_user_login
get :set_user_email
end
collection do
get :pending
get :active
get :suspended
get :deleted
end
end
end
end
В чем может быть проблема?
Я понимаю проблему с маршрутами.Однако я не хочу менять его.
Как можно использовать наследование одной таблицы с общей формой?
Заранее спасибо