form_tag不会纠正控制器

时间:2013-11-01 18:48:10

标签: ruby-on-rails

所以我试图在博客编辑视图中创建一个简单的表单,它只会接收一个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>

所以我想点击“submit 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操作?

1 个答案:

答案 0 :(得分:1)

您是否在路线中添加了#Foo动作?

您可能有类似于resources :admins的内容,并应将其更改为

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

Rails Routing docs

提供更多信息