圍繞Rails 3 STI以及如何使用表單,但在StackOverflow上沒有明確的答案還有很多討論。我似乎遇到了類似的問題,並嘗試了其他解決方案,但沒有結果。Rails STI:實現子類編輯表格
我有兩個型號,下面的繼承設置:
User.rb
class User < ActiveRecord::Base
attr_accessible :email, :first_name, :last_name, #more follows
Waiter.rb
class Waiter < User
論/服務員/用戶/形式[:編號] /編輯,我試圖創建一個表單編輯服務員。不過,我在加載編輯觀點得到以下錯誤:
undefined method `waiter_path' for #<#<Class:0x007fbd08cef9d8>:0x007fbd09532fa0>
這是/app/controllers/admin/waiters/users_controller.rb發現我的控制器:
def edit
form_info
@user = Waiter.find(params[:id])
end
def update
@user = Waiter.find_by_id(params[:id])
if @user.update_attributes(params[:user])
flash[:notice] = "Successfully assigned Waiter."
redirect_to admin_waiters_users_url()
else
form_info
render :action => 'edit'
end
end
這是坐落在編輯視圖形式:
<%= simple_form_for @user do |f| %>
<%= f.input :first_name %>
<%= f.input :last_name %>
<%= f.input :email %>
<%= button_tag(type: 'submit', class: "btn btn-primary") do %>
<i class="icon-ok icon-white"></i> Save
<% end %>
<% end %>
我在做什麼錯在這裏與STI和路由?
更新:這是我的耙路線:
admin_waiters_users GET /admin/waiters/users(.:format) admin/waiters/users#index
POST /admin/waiters/users(.:format) admin/waiters/users#create
new_admin_waiters_user GET /admin/waiters/users/new(.:format) admin/waiters/users#new
edit_admin_waiters_user GET /admin/waiters/users/:id/edit(.:format) admin/waiters/users#edit
admin_waiters_user GET /admin/waiters/users/:id(.:format) admin/waiters/users#show
PUT /admin/waiters/users/:id(.:format) admin/waiters/users#update
謝謝。完全忘記包含它。 – mztwo 2013-02-10 23:42:35
我編輯了我的回覆。試一把! – hyperrjas 2013-02-10 23:53:44
這使表單工作。但提交按鈕沒有更新服務員用戶。任何想法爲什麼? – mztwo 2013-02-11 01:05:00