Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从form_转换为form_标记时出现问题_Ruby On Rails_Form For - Fatal编程技术网

Ruby on rails 从form_转换为form_标记时出现问题

Ruby on rails 从form_转换为form_标记时出现问题,ruby-on-rails,form-for,Ruby On Rails,Form For,如何将其转换为form_标签?此代码基本上来自Michael Hartl的RoR教程第8章练习1 <% provide(:title, "Sign in") %> <h1>Sign in</h1> <div class="row"> <div class="span6 offset3"> <%= form_for(:session, url: sessions_path) do |f| %> &l

如何将其转换为form_标签?此代码基本上来自Michael Hartl的RoR教程第8章练习1

<% provide(:title, "Sign in") %>
<h1>Sign in</h1>

<div class="row">
  <div class="span6 offset3">
    <%= form_for(:session, url: sessions_path) do |f| %>

      <%= f.label :email %>
      <%= f.text_field :email %>

      <%= f.label :password %>
      <%= f.password_field :password %>

      <%= f.submit "Sign in", class: "btn btn-large btn-primary" %>
    <% end %>

    <p>New user? <%= link_to "Sign up now!", signup_path %></p>
  </div>
</div>

登录
新用户

我试过这样的东西

<% provide(:title, "Sign in") %>
<h1>Sign in</h1>

<div class="row">
  <div class="span6 offset3">
    <% form_tag sessions_path, methods=> :post do %>
        <%= label_tag 'email' %><br />
        <%= text_field_tag :email, params[:email], :placeholder => "Email" %>

        <%= label_tag 'password' %><br />
        <%= password_field_tag :password %>

        <%= submit_tag 'Sign in' %>
    <% end -%>
    <p>New user? <%= link_to "Sign up now!", signup_path %></p>
  </div>
</div>

登录
:post do%>

“电子邮件”%>
新用户

但它根本不显示表单


谢谢

您需要添加一个等号:

<%= form_tag sessions_path, methods=> :post do %>
:post do%>

但是,我想知道您为什么要切换到
表单标签
form\u for
在我看来有很多优点,例如表单生成器。

我也在尝试转换为form\u标签

正确语法

<%= form_tag sessions_path, :method => 'post' do %>

下一个是教程的代码(Michael Hartl 3.2)第8章。练习1

<% provide(:title, "Sign in") %>
<h1>Sign in</h1>

<div class="row">
    <div class="span6 offset3">

        <%= form_tag sessions_path, :method => 'post' do %>
          <%= label_tag 'email', 'Email' %>
          <%= text_field_tag :email, params[:email], :placeholder => "Email" %>
          <%= label_tag 'password', 'Password' %>
         <%= password_field_tag :password %>
      <br>
      <%= submit_tag "Sign In" , :class=> "btn btn-large btn-primary" %>
    <% end %>
    <p>New user? <%= link_to "Sign up now!", signup_path %></p>
</div>

登录
“post”do%>
“电子邮件”%>

“btn btn大型btn主节点”%> 新用户


哦,好的。那太好了。”因为这只是一个练习。谢谢你的意见,我会坚持使用表格:)好的。只是想补充一点,当您在form_tag方法的开头添加等号时,它至少应该显示一些内容。这是Rails 3中的一个更改。在Rails 2中,这也应该在没有等号的情况下工作。如果我完全回答了你的问题,你能把这个答案标记为接受吗?谢谢!:)
def create
    user = User.find_by(email: params[:email].downcase)
    if user && user.authenticate(params[:password])
        sign_in user
        redirect_to user
    else
        flash.now[:error] = 'Invalid email/password combination' 
        render 'new'
    end
end
<% provide(:title, "Sign in") %>
<h1>Sign in</h1>

<div class="row">
    <div class="span6 offset3">

        <%= form_tag sessions_path, :method => 'post' do %>
          <%= label_tag 'email', 'Email' %>
          <%= text_field_tag :email, params[:email], :placeholder => "Email" %>
          <%= label_tag 'password', 'Password' %>
         <%= password_field_tag :password %>
      <br>
      <%= submit_tag "Sign In" , :class=> "btn btn-large btn-primary" %>
    <% end %>
    <p>New user? <%= link_to "Sign up now!", signup_path %></p>
</div>