0

コントローラのアクションに少し問題があります。私が求めている動作は、メモを編集するためのオプションです。ユーザーがメモを作成したのと同じように、モーダル(twitterブートストラップ)でメモを編集できるようにしたいと思います。この方法でメモを作成すると、問題なく機能します。問題はメモを編集することです。主な問題は、ユーザーが「編集」ボタンをクリックしたときに、常に正確なノートIDを知る必要があるということです。もう少し複雑にするために、「メモ」などのコンテナとして機能する「ダッシュボード」コントローラー/モデルがあります。

これが、すべてのユーザーの現在のメモを表示するダッシュボードのビューにあるコード/リンクです。

        = link_to "Edit Note", "update_note/#{n.id}",{:note_id => "#{n.id}"}

だからここで私はノートIDを含むいくつかのパラメータを送信しています。次に、コントローラーアクションで、ダッシュボード(コンテナー)で

          def update_note
            @user         = current_user
            @edit_note_id = params[:params1]
            redirect_to dashboard_path and return
            respond_to do |format|
               format.html { render "#modal_edit_notes"}
            end
          end

したがって、ある時点で一意のノートIDを取得し、何かをインスタンス化して、モーダルがロードされたときに、それに基づいてフォームを作成できるようにします。私が抱えている問題は、この時点でコントローラーをダッシュ​​ボードに戻し、モーダルをポップアップすることです。これで、note.idができました。

モーダルをトリガーするために、私は通常、

          href = #modal_edit_notes, data-toggle = "modal"

ありがとう!

4

1 に答える 1

1

OK、ここには2つのオプションがあります。

  1. 表示するすべてのメモの非表示要素内にフォームを埋め込み、その特定のメモを編集するときに、事前にレンダリングされたフォームをモーダルに表示します。

  2. ajaxを介してモーダルのコンテンツをロードします。これには、ブートストラップモーダルで機能させるために少しのカスタムJSが必要ですが、それほど難しくはありません。これが私がやる方法です。

また、副次的な点として、update_noteメソッドは実際にはのupdateメソッドである必要がありNotesControllerます。

于 2012-12-01T06:54:58.180 に答える