2011-07-25 88 views
0

我需要在HAML中切換表單聲明。Rails Haml - end if

- 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內部服務器錯誤

我怎樣才能做到這一點?

+0

檢查壓痕 – Awea

+0

@Awea我想這兩個變種,我覺得HAML不知道在哪裏了'if'聲明結束,在第一種情況下看不到的形式內容 –

+0

第二text_field需要在這兩種形式? – Awea

回答

3

試試這個

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

不錯,但你的縮進也是錯的 - 第三和第四行縮進超過2個空格 – stephenmurdoch

+0

@stephenmurdoch他可能使用製表符而不是空格 –

+0

軟標籤總是更好^^ – marcgg

2

由於Haml的工作壓痕,你並不需要的。如果後結束statment。

確保您的'如果'和'其他'是對齊的,並將正確縮進後的任何內容放入。