ruby on rails/routing-filter/form_for html
问题描述:
这个问题与路由过滤有关。ruby on rails/routing-filter/form_for html
我有这个在我看来:
<% form_for :post, :url => {:action => "show"} do |f| %>
它转换在浏览器这样的:
<form action="/en/posts/show" method="post">
改变I18n.locale
例如后
I18n.locale = :en
的HTML变为:
<form action="/en/posts/72" method="post">
,并且操作不工作,我得到这个错误:
Unknown action
No action responded to 72.
当然,也有像72没有动作此号码是当然显示动作的输入。这是正确的邮政编号。所以如果我把这个地址localhost:3000/en/posts/72放到浏览器中,那么它给了我这个页面没有问题。
那么为什么它不能在窗体中工作呢?
谢谢。
答
指定这样的方法:
<% form_for :goal, :url => { :action => 'show' }, :html => {:method => :put} do |f| %>
它为我工作。
你为什么张贴到节目的行动? – askegg 2009-08-18 00:22:50
为什么不呢? 从脚手架默认显示动作的代码有 @post = Post.find(params [:id],... 所以它应该采取的编号是正确的吗? – valk 2009-08-18 15:32:27
POSTing意味着发送数据来更新一个对象。用于显示的对象和GET请求已足够并且是RESTful。 – askegg 2009-08-18 23:51:12