Joh*_*ohn 35 forms ruby-on-rails
我有以下haml行:
=form_tag :action => 'create', :controller => 'comments', :class => 'comment_form' do
Run Code Online (Sandbox Code Playgroud)
但获得输出的html是:
<form accept-charset="UTF-8" action="/comments?class=comment_form" method="post"></form>
Run Code Online (Sandbox Code Playgroud)
我想设置课程.我该怎么做呢?
< - 更新 - >
有了这个:
=form_tag ({ :action => 'create', :controller => 'comments' }, { :class => 'comment_form' }) do
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
syntax error, unexpected ',', expecting ')'
...', :controller => 'comments' }, { :class => 'comment_form' }...
Run Code Online (Sandbox Code Playgroud)
< - 第二次更新 - >
上面的问题是'form_tag'和'之间的空间'('@ woahdae的回答是正确的
Woa*_*dae 59
form_tag有两个选项哈希,第一个传递给url_for,第二个传递给表单构建器.
所以,你必须这样做:
= form_tag({:action => 'create',...}, {:class => 'comment_form'}) do
Run Code Online (Sandbox Code Playgroud)
否则Rails认为所有的键/值对都是url_for,它会将任何不理解的键作为查询参数附加.
这对我有用:
form_tag named_route, :method => :put, :class => 'disable_on_submit'
Run Code Online (Sandbox Code Playgroud)
使用Rails 3.0.15
在Rails 5上,您可以执行以下操作:
<%= form_tag(your_named_path, {class: 'form-inline'}) do %>
<% end %>
Run Code Online (Sandbox Code Playgroud)