Rails: несколько параметров, прежде чем делать? - PullRequest
4 голосов
/ 22 января 2009

У меня есть этот синтаксис, который работает (так как он из API, в значительной степени)

  <% form_tag :action => "whatever" do -%>
    <div><%= submit_tag 'Save' %></div>
  <% end -%>

и это, которое работает

<%=  form_tag({:action => "whatever"}, {:method => "get"})%>

Теперь я попытался объединить их, угадав синтаксис. «Get» не добавляется как метод формы, как я и надеялся. Как это читать?

  <% form_tag :action => "whatever",:method => "get"  do -%>
    <div><%= submit_tag 'Save' %></div>
  <% end -%>

Метка формы должна гласить:

<form action="hello/whatever" method="get"/> 

не

<form action="hello/whatever?method=get" />

Ответы [ 3 ]

7 голосов
/ 22 января 2009
<% form_tag({:action => 'whatever'}, :method => "get")  do -%>
      <div><%= submit_tag 'Save' %></div>
<% end -%>

Глядя на API-документы , проблема заключается в том, что :method необходимо перейти в хеш options, а :action в хеш url_for_options, и вам нужно дополнительное вьющееся скобки, чтобы интерпретатор знал, что это разные хэши.

2 голосов
/ 23 января 2009

Я бы сказал, что лучший способ сделать это - не использовать анонимные имена маршрутов и использовать именованные маршруты. Так намного лучше и чище, например,

<% form_tag discussions_path, :method => 'get' do %>
  <div><%= submit_tag 'Save' %></div>
<% end %>
0 голосов
/ 22 января 2009

Вы пробовали

<% form_tag(:action => "whatever", :method => "get")  do -%>
    <div><%= submit_tag 'Save' %></div>
<% end -%>

ri form_tag также приводит примеры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...