0

所以我试图在博客编辑视图中创建一个简单的表单,它只接受一个 id 号并将其传递给控制器​​方法。在我看来,我有

<div class = ''>
  <h4><%= _("Foo blog") %></h4>
    <ul id='foo' class='inputs-list'>
      <%= form_tag foo_path, :method => 'get' do %>
        <%= label_tag(:fooid, "Blog ID") %>
        <%= text_field_tag(:fooid) %>
        <%= submit_tag("submit foo") %>
      <% end %>
    </ul>
</div>

所以我想点击“提交 foo”将 ID 提交给控制器中的 foo 操作。

在我的控制器中,我有:

def foo
  respond_to do |format|
    format.html { 
      if params[:fooid]
        redirect_to '/'
      else
        redirect_to '/'
      end
    }
  end
end

当我运行 rake 路线时,我得到:

 foo        /admin/content/foo(.:format)     {:controller=>"admin/content", :action=>"foo"}

但是每次我单击提交 foo 时,它都不会使用该方法,而是表现得好像我试图保存博客文章一样。如何让表单重定向到 admin/content 控制器中的 foo 操作?

4

1 回答 1

1

您是否将 #Foo 操作添加到您的路线?

您可能有类似的东西: resources :admins,并且应该将其更改为

resources :admins do
    resources :contents do
        member do
            post 'foo'
        end
    end
end

Rails 路由文档中提供了更多信息

于 2013-11-01T19:22:22.180 回答