0

すべての一般的な足場が作成されたリンク モデルがありますが、link#new ページに移動するのではなく、新しいレコードを入力するフォームをホームページから送信したいと考えています。

テキスト フィールドは 1 つしかありませんが、フォームの作成方法がわかりません。フォームフィールドでコントローラーを指定する必要がある場所を読みましたが、これは機能していないようです。

<%= form_for(:link, @link) 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="field">
    <%= f.label :url %><br />
    <%= f.text_field :url %>
  </div>

  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>
4

2 に答える 2

3

デフォルト ルートを使用している場合は、何も指定する必要はありません。

@link がデータベースに存在しないオブジェクトである場合、Rails はこれが のフォームであると自動的に認識します #new。したがって、フォームのアクションは になり/links、メソッドはpostになります。これがデフォルトのリソースです#create

あなたの場合、何もする必要はありません。フォームコードを次のように修正するだけです。

<%= form_for(@link) do |f| %>
....

また、ホームコントローラーに @link オブジェクトを用意する必要があります。

@link = Link.new

于 2013-05-01T03:14:43.803 に答える
0

urlform_for ヘルパーにパラメーターを追加するだけです。

<%= form_for :link, url: your_home_path do |f| %>
于 2013-05-01T03:12:58.897 に答える