0

我在主页上添加了一个表单,它为模型创建了一个新实例links。这很好,除非您将表单字段留空并点击提交,它会将您转发到模型的新页面。

我真正想要的是它进行相同的验证检查,并告诉用户该字段不能为空。我不确定为什么它转发而不是引发验证错误-我假设它与我从典型模型脚手架之外的表单创建实例有关。

这是表单代码:

        <%= form_for(@link, :html => {:class => "form-inline"}) do |f| %>
          <% if @link.errors.any? %>
            <div id="error_explanation">
              <h2><%= pluralize(@link.errors.count, "error") %> prohibited this link from being saved:</h2>

              <ul>
              <% @link.errors.full_messages.each do |msg| %>
                <li><%= msg %></li>
              <% end %>
              </ul>
            </div>
          <% end %>

            <div class="urlform">
                <label>Enter link...</label>
                <%= f.text_field :url, :class => "input-medium", :placeholder => "mybookmark.com" %>
                <%= f.submit "Create", :class => "btn create" %>
            </div>
            <% end %>
4

1 回答 1

1

LinksController 应该定义模型创建失败后要呈现的页面。你现在应该有类似的东西:

class LinksController < ApplicationController
  ...
  def create
    @link = Link.new(params[:link])
    if @link.save
      ...
    else
      render :new
    end
  end
...
end

例如,如果您进行更改render newredirect_to root_path您将获得所需的效果。

于 2013-05-11T16:26:16.727 回答