rails admin编辑视图路径路径

时间:2010-08-22 22:15:24

标签: ruby-on-rails

我有一个管理部门设置,但我无法让“更新”路线发挥作用。

通过编辑视图点击“更新”时出错:
“没有任何行动回应2。”

由于某种原因,路由响应:id为:action。

参数:
  参数:{“commit”=>“更新”,“操作”=>“2”,“_ method”=>“put”,“admin”=> {“ended_at( 1i)“=>”2010“,”ended_at(2i)“=>”8“,”ended_at(3i)“=>”22“},”id“=>”编辑“,”控制器“ => “中管理/订阅”}

编辑视图uri:
/管理/订阅/ 2 /编辑

修改视图

<% form_for :admin, @subscription, :html => {:method => :put} do |f| %>
  <p>
    <%= f.label :ended_at %><br />
    <%= f.date_select :ended_at %>
  </p>
  <p>
    <%= f.submit 'Update' %>
  </p>
<% end %>

路线:

  map.namespace :admin do |admin|
    admin.resources :subscriptions
  end

我认为我需要在form_for方法或路线中做一些不同的事情,但我尝试过的一切都不起作用。

感谢您的帮助!!

3 个答案:

答案 0 :(得分:1)

应该是这样的:

<% form_for [:admin, @subscription] do |f| %>

通过将:admin@subscription放在方括号中,这会使其成为一个数组,并将其作为第一个参数传递给form_for。这样做的好处是,如果@subscription是预先存在的记录(as-in,由find找到,不是用new创建的),那么Rails将知道设置{{1}方法form

答案 1 :(得分:0)

这有效:

<% form_for :admin, @subscription, :html => {:method => :put}, :url => { :action => "update" } do |f| %>

虽然看起来很冗长。有更好的想法吗?

答案 2 :(得分:0)

尝试

- form_for :subscription, @subscription do |f|

我们在这里使用formtastic。