Rails Haml - 结束如果

时间:2011-07-25 15:11:15

标签: ruby-on-rails haml

我需要在HAML中切换表单声明。

- if params[:action] == 'tomato'
  = form_for @request, :url => 'request/tomato' do |f|
- else
  = form_for @request do |f|

    = f.text_field ...  # form content

  = f.text_field # don't work too

但是我不能使用end将表单声明与表单内容分开,所以我得到500内部服务器错误

我怎样才能实现这个目标?

2 个答案:

答案 0 :(得分:3)

试试这个

- args = params[:action] == "tomato" ? {:url => 'request/tomato'} : {}
= form_for @request, args do |f|
  = f.text_field :field_one
  = f.text_field :field_two

答案 1 :(得分:2)

由于Haml处理缩进,因此在If之后不需要End语句。

确保您的'if'和'else'对齐,并将正确缩进后的任何内容放入其中。