2013-11-05 27 views
0

這是原始的HTML代碼:的Rails的form_for(的form_tag)更改標識問題

<form id="login" action="/barbie/main"> 
    <h1>Log In</h1> 
    <fieldset id="inputs"> 

     <input id="username" type="text" placeholder="Username" autofocus required> 
     <input id="password" type="password" placeholder="Password" required> 
    </fieldset> 
    <fieldset id="actions"> 
     <input type="submit" id="submit" value="Log in"> 
     <a href="/barbie/register">Register</a> 
    </fieldset> 


</form> 

我試圖改變這一到Rails表單代碼。我用Google搜索,發現我必須要改變這樣的:

<%= form_for(:model), :html=> {:id => 'login'} do |form| %> 
<p> 
    <%=form.label :input%> 
    <%=form.text_field :input, :placeholder => 'Enter text here...'%> 
</p> 
<p> 
    <%=form.label 'condiment'%>: 
    <%=form.check_box :ketchup%> 
</p> 
<%end%> 

如果我跑,我得到一個錯誤:

C:/Users/Hyunjae.Park/rubyworkspace/Barbie_WebUI/app/views/barbie/login.html.erb:20: syntax error, unexpected tASSOC, expecting keyword_end 
...end= form_for(:model), :html=> {:id => 'custom_form_id'} do... 
...        ^
C:/Users/Hyunjae.Park/rubyworkspace/Barbie_WebUI/app/views/barbie/login.html.erb:20: syntax error, unexpected keyword_do_block, expecting keyword_end 
...=> {:id => 'custom_form_id'} do |form| @output_buffer.safe_c... 
...        ^
C:/Users/Hyunjae.Park/rubyworkspace/Barbie_WebUI/app/views/barbie/login.html.erb:30: syntax error, unexpected keyword_ensure, expecting $end 
Extracted source (around line #20): 

17: </form> 
18: --> 
19: 
20: <%= form_for(:model), :html=> {:id => 'custom_form_id'} do |form| %> 
21: <p> 
22: <%=form.label :input%> 
23: <%=form.text_field :input, :placeholder => 'Enter text here...'%> 

此外,我不明白這是什麼:model@user種事情是在Rails中。

回答

4

括號在這條線是錯誤的:

<%= form_for(:model), :html=> {:id => 'login'} do |form| %> 

:html也是一個參數,以及:model,所以他們都應該包含在相同的括號,或者根本不使用括號。

下列任一將工作:

<%= form_for(:model, :html=> {:id => 'login'}) do |form| %> 

<%= form_for :model, :html=> {:id => 'login'} do |form| %> 
+0

謝謝。我真的很感謝你的迴應:) – Canna