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 newするredirect_to root_pathと、目的の効果が得られます。

于 2013-05-11T16:26:16.727 に答える