0

ビジネスのテーブルができるように、コードが機能しています。ビジネス情報の編集をクリックできる鉛筆アイコンがあります。編集情報は、モーダル ポップアップ ボックスの内部に部分的に表示されます。唯一の問題は、必要な変更を行って更新をクリックすると、そのビジネスの「表示」ページに送信されることです。私がやりたいことは、ポップアップボックスを閉じて、情報を更新することです。これは、コントローラーの更新機能です。

 def update
@business = Business.find(params[:id])

respond_to do |format|
  if @business.update_attributes(params[:business])
    flash[:notice] = 'Business was successfully updated.'
    format.html { redirect_to(business_url(@business)) }
    format.js
  else
    format.html { render :action => "edit" }
    format.xml  { render :xml => @business.errors, :status => :unprocessable_entity }
  end
end

終わり

railscast 43 に従ってみましたが、.rjs ファイルを作成しましたが、まったく機能しませんでした。私のアップデートはまだショーページに連れて行ってくれました。どんな助けでも大歓迎です。

編集:さらにコードを追加しました。

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

<p>
  <%= f.label :name %><br />
  <%= f.text_field :name %>
</p>
...
      <%= f.label :business_category %><br />
      <%= f.select :business_category_id, @business_categories_map, :selected => @business.business_category_id %>
    </p>
    <p>
      <%= f.label :description %><br />
      <%= f.text_area :description %>
    </p>
    <p>
      <%= f.submit 'Update' %>
    </p>
  <% end %>

これは、ポップアップのインデックスを介して呼び出されている編集ページ内のフォームです。

<div id="popupEdit<%=h business.id %>" class="popupContact">
      <a class="popupClose<%=h business.id %>" id="popupClose">x</a>
      <% if business.business_category_id %>
        <% @business = business  %>
        <%= render "business/edit" %>
      <% end %>
    </div>
4

2 に答える 2

0

まず、JavaScript を使用せずにコードを動作させる必要があります。また、RJS はまったく使用しないでください。代わりに目立たない JavaScript を使用してください。

Hyland 氏が言うように、これ以上の支援を行う前に、ビュー コードも確認する必要があります。

于 2009-07-06T20:39:48.833 に答える
0

フォーム コードを見ずに言うのは難しいですが (ヒント ヒント! :-)、remote_form_for (AJAX 要求を送信する) の代わりに form_for (通常の HTML フォームに従って POST を送信する) を使用している可能性があります。 .

于 2009-07-06T20:17:15.913 に答える