2015-10-20 94 views
2

我想風格窗體中的這個欄內form_for元素,但不斷遇到語法錯誤,沒有我嘗試似乎工作,你能看到這個問題嗎?這個類除了這個rails form_for還有什麼問題嗎?

<%= form_for(@todo_list) do |f| %> 
    <div class="form-group"> 
    <%= f.label :title %><br> 
    <%= f.text_field :title %> 
    </div> 
    <div class="form-group"> 
    <%= f.label :description %><br> 
    <%= f.text_area :description %> 
    </div> 
    <div> 
    <%= f.submit, html: {class: "btn btn-default btn-xs"} %> 
    </div> 
<% end %> 

導致此錯誤:_form.html.erb:23: syntax error, unexpected tLABEL, expecting '=' ...buffer.append=(f.submit, html: {class: "btn btn-default btn... ...

有各種各樣的變化class=class:html=>,等等等等似乎只是給出錯誤了。

<%= f.submit, class: "btn btn-default btn-xs" %>

導致此錯誤:

SyntaxError in TodoListsController#edit ...... _form.html.erb:23: syntax error,unexpected tLABEL, expecting '=' ...uffer.append=(f.submit, class: "btn btn-default btn-xs");@... ... ^

傳遞 '形橫' 到form_for仍然產生一個錯誤;

<%= form_for(@todo_list, html => {:class => "form-horizontal"}) do |f| %> 
.... 
.... 
<%= f.submit, class: "btn btn-default btn-xs" %> 

SyntaxError in TodoListsController#edit ... _form.html.erb:23: syntax error, unexpected tLABEL, expecting '=' ...uffer.append=(f.submit, class: "btn btn-default btn-xs");@... ... ^

需要注意的是,如果我明確地聲明標籤提交的動作,例如;

<%= f.submit 'Save', class: "btn btn-default btn-xs" %> 

然後這個類被成功添加,我的引導樣式工作。然而,這既不能找到主要問題也不能解決它,因爲我不能使用rails的form_for提交動作的動態命名。

我適用於div的類似乎工作正常,bootstrap加載正常。誰能幫忙?謝謝

+0

你有一個額外的逗號:'f.submit類: 「BTN BTN-默認BTN-XS」'(了'˚F後不要使用逗號.submit'調用)(或最終給出'nil'作爲第一個參數) – MrYoshiji

+0

@MrYoshiji請提交您的評論作爲答案,因爲它是正確的。哦,我的,經過數小時的研究,這是最小的事情!謝謝。 – jbk

回答

2

這是排印錯誤:您有一個額外的逗號:

f.submit, class: "btn btn-default btn-xs" 
#  ^extra comma 

你應該使用下列內容:

f.submit nil, class: 'btn btn-default btn-xs' 
#  ^no comma 
0

像這樣使用。

<%= form_for(@todo_list, :html => {:class => "form-horizontal"}) do |f| %> 

<%= f.submit class: "btn btn-default btn-xs"%> 
+0

不幸的是,在主要問題主體中添加了具體的錯誤mssg。 – jbk

+0

我已編輯我的答案,請讓我知道。 –

+0

啊,所以我必須在form_for的開頭傳入這樣的html參考?引導形式是指什麼? (不會像上面寫的那樣工作。) – jbk

0

正如Umar提到的,你f.submitclassreference is incorrect

<%= f.submit, class: "btn btn-default btn-xs" %> 

您還可以在您的形式使用循環中受益:

#form 
<% options = [[:title, "text_field"],[:description, "text_area"]] %> 
<%= form_for @todo_list do |f| %> 
    <% options.each do |option| %> 
     <%= content_tag :div, class: "form-group" %> 
      <%= f.label option[0] %> 
      <%= f.send(option[1], option[0]) %> 
     <% end %> 
    <% end %> 
    <%= f.submit %> 
<% end %> 
+0

我試過按照@歐麥爾的建議,並根據問題主體的增加。仍然不工作:( – jbk

+0

返回的錯誤? –

+1

請在我的答案中看到我的最新更改,並且不要在f.submit中使用「html」 –

2

你忘了添加標籤提交按鈕

<%= f.submit 'Ok', class: "btn btn-default btn-xs" %> 

編輯 另一種方法是按鈕的重寫默認值:

<%= f.submit class: "btn btn-default btn-xs", value: 'Ok!' %> 

和,因爲我覺得,這裏就是你要找的內容:沒有逗號後

<%= f.submit class: "btn btn-default btn-xs" %> 

f.submit

+0

如果沒有嘗試添加類,那麼表單工作得很好,但沒有提交動作標籤?但我會嘗試使用標籤。 – jbk

+1

添加標籤並重新啓動服務器 –

+0

謝謝伊戈爾,現在正在工作。你能否幫助我理解爲什麼沒有額外的課程,沒有專門聲明的標籤工作正常,但只要你添加課程,你需要申報標籤?謝謝 – jbk