0

This is the original HTML code:

<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>

I'm trying to change this to Rails form code. I googled and found that I have to change it like this:

<%= 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%>

If I run this, I get an error:

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...'%>

Also I don't understand what this :model or @user kind of thing is in Rails.

4

1 回答 1

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| %>
于 2013-11-05T02:38:27.247 回答