这个Ruby表单不起作用?

时间:2010-06-22 20:26:53

标签: ruby-on-rails

我可以创造一个新的,这似乎有效。但是编辑/更新没有。

我的控制器:

def edit
  @admin_wysi = AdminWysi.find(params[:id])
end

def update
  @admin_wysi = AdminWysi.find(params[:id])

  if @admin_wysi.update_attributes(params[:admin_wysis])
    redirect_to admin_admin_wysis_path
  end
end

我的HAML ..

- form_for @admin_wysi, :url => admin_admin_wysis_path do |f|
  = f.cktext_area :post_published, :cols => '70', :rows => '30', :width => '555px', :height => '240px', :toolbar => 'HQ'
  = f.submit 'Update', {:class => 'button'}

这实际上是从我的“新”中复制和粘贴的,所以我猜这个问题来自我的控制器。此外,没有错误,SQL的注入与“new”相同。

感谢所有人。

2 个答案:

答案 0 :(得分:2)

你需要一个略有不同的编辑表格

- form_for @admin_wysi, :url => admin_admin_wysis_path(@admin_wysi) do |f|

这应该是edit.html.haml

更新:您似乎已经完成了此操作,但您需要在routes.rb中使用以下行,以便命名路由能够正常工作。

map.name_space :admin do |admin|
  admin.resources :admin_wysi
end

更新:那应该是

- form_for @admin_wysi, :url => admin_admin_wysi_path(@admin_wysi) do |f|

触发更新操作。

答案 1 :(得分:1)

不应该是

@admin_wysi.update_attributes(params[:admin_wysi]

而不是

@admin_wysi.update_attributes(params[:admin_wysis]