Rails form_for提交按钮不起作用

jmk*_*oll 4 forms ruby-on-rails-3

感谢您的耐心等待.对Rails来说还是个新手.

使用Rails 3.2

为简单的应用程序制作注册页面.我的问题是我的表单上的提交按钮不会产生任何影响,无论表单中的信息是否有效.

用户模型和数据库似乎都工作正常.如果我从rails控制台手动添加用户,它会将其添加到数据库中.据我所知,问题似乎是由form_for生成的形式.

这是有问题的页面:

<% provide(:title, 'Sign up') %>
<h1>Sign up</h1>

<div class="row">
    <div class="span6 offset3>
        <%= form_for(@user) do |f| %>
            <%= render 'shared/error_messages' %>

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

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

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

            <%= f.label :password_confirmation, "Confirmation" %>
            <%= f.password_field :password_confirmation %>

            <%= f.submit "Create my account", class: "btn btn-large btn-primary" %>
        <% end %>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是我的用户控制器:

  def show
    @user = User.find(params[:id])
  end

  def new
    @user = User.new
  end

  def create
    @user = User.new(params[:user])
        if @user.save
            flash[:success] = "Thank you for signing up! Please check your email to confirm your account."
            redirect_to @user
        else
            render 'new'
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

提交不会导致任何类型的错误 - 根本不会导致任何事情发生.所以日志中没有有价值的信息.

提前感谢您的任何见解.

编辑:从/shared/_error_messages.html.erb部分添加代码

<% if @user.errors.any? %>
  <div id="error_explanation">
    <div class="alert alert-error">
      The form contains <%= pluralize(@user.errors.count, "error") %>.
    </div>
    <ul>
    <% @user.errors.full_messages.each do |msg| %>
      <li>* <%= msg %></li>
    <% end %>
    </ul>
  </div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

jmk*_*oll 10

那么仔细编码就是一个很好的小课:

<div class="row">
    <div class="span6 offset3>
        <%= form_for(@user) do |f| %>
Run Code Online (Sandbox Code Playgroud)

本来应该:

<div class="row">
    <div class="span6 offset3**"**>
        <%= form_for(@user) do |f| %>
Run Code Online (Sandbox Code Playgroud)

结束标签可以产生相当大的差异.

  • 同样的问题,完全不同的代码.课程:如果表单中的按钮不起作用,则有人忘记了关闭>某处. (2认同)