2013-11-05 26 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