rails中form_for url的正确语法

时间:2012-11-25 08:51:08

标签: ruby-on-rails

这可能很简单,我仍然习惯使用rails语法。将form_for的url中的address_id传递给修改后的路由的正确语法是什么?

这是表格 - 请注意“address_id参数”

  <div class="one_fourth floatcenter">
    <%= form_for address, :url => edit_address_path(:id => address.id), :method => :get do |f| %>
        <%= content_tag(:button, :class => 'btn btn-inverse') do %> Edit Address
        <% end %>
    <% end %>
  </div>

这是我配置的路线:

get "edit_address/:id" => "member/addresses#edit"

由于某种原因,Id未被传递给控制器​​...

2 个答案:

答案 0 :(得分:1)

如果地址是持久对象,

form_for address就足够了,但如果它还不够,那么form_for address, url: edit_address_path(address)就是你想要的。

答案 1 :(得分:1)

这很简单。代替url,您可以使用post方法路线:

<%= form_for(@post, url: super_posts_path) do |f| %>

...  
<% end %>

您也可以按行动致电

 <%= form_for @friend,:url=> { action: "create_friend"} do |f|%><br>
  <%= f.label :u_from %>
      <%= f.text_field :u_from %>
     <%= f.label :u_to %>
     <%= f.text_field :u_to %>
    <%= f.submit%>
 <% end %>