1

意味がないように見えるので、これは私を夢中にさせています。

比較的簡単なことをしたい。

インデックスページにモーダルで編集フォームを表示します。

サイトのコレクションをループする次のコードがあります

<%= render(@sites) %>
<%= will_paginate @sites %>

部分的なサイト内に、次のフォームが隠されています

<%= simple_form_for site, remote: true do |f| %>
  <%= f.input :name %>
  <%= f.input :matter  %>
  <%= f.submit "Save", :class => "button gr thirt", id: "site_save" %>
<% end %>

予想される HTML を生成する代わりに、show アクションにリンクする次のものが表示されます。

<form accept-charset="UTF-8" action="/sites/1" class="simple_form edit_site" data-remote="true"  method="post" novalidate="novalidate">
</form>
4

1 に答える 1

1

@sites のコレクション、Site.all の呼び出しによって返される結果をループしていたので、上記のフォームに提供されるオブジェクトは、@sites に含まれる |site| の 1 つです。

データベースから取得したオブジェクトまたは Site.new のような「新しいレコード」オブジェクトを使用して form_for フォームを提供すると、作成アクションと更新アクションの間でルートなどが自動的に区別され、変更されます。

@sites ブロックに含まれるサイト オブジェクトは、form_for で認識できませんでした。そのため、ajax 経由で編集を要求し、編集アクション (@site = Site.find(params[:id])) によって作成されたインスタンス変数をフォームに提供する簡単なリファクタリングは、form_for ヘルパーによって認識され、それを意味しました。したがって、正しいルートに調整されます。

于 2013-06-26T14:47:52.553 に答える