围绕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