0

私はレールに非常に慣れていないので、私の質問は非常に単純だと思います。基本的に、ビューページにオブジェクト送信ボタンがあります(指定されたオブジェクトに対して作成と保存を実行します)が、ボタンを選択すると、ビューはまったく変更されません(したがって、既にロードされている同じページにとどまります) )。オブジェクトコントローラで作成アクションを編集して、ビューに何も起こらないようにするのに問題があります(これは可能ですか?または、アクションごとに新しいビューが発生する必要があるという考えです)。

ご協力ありがとうございます!リサ

4

3 に答える 3

1

したがって、オブジェクトを保存し、URLを変更したくない場合。

作成アクションで、オブジェクトが保存された後。そのビューにリダイレクトします。

だから次のようなもの:

$   if @object.save
    redirect_to :action => "index"
    # or
    # redirect_to object_path # you can set this in config/routes.rb
    # or
    # redirect_to :action => "show", :id => @object.id
于 2013-01-09T23:06:38.360 に答える
1

これは、ajaxリクエストを使用して行うことができます。

コントローラで、必要なオブジェクトを作成するジョブを実行するアクションを作成します。

class SomeController < ApplicationController
  def index
    #this is your view controller
  end

  def youraction
    #create an object
    render :nothing => true
  end
end

次に、ボタンをajaxリクエストを実行するjavascript関数にバインドします。

HTML

<button id="submit_button">Submit</button>

Javascript

$(document).ready(function (){
  $('#submit_button').click(function(){
    $.ajax({
      url: 'url_to_the_controller/youraction',
      type: 'POST'
      success: function (){
        alert('success');
      },
      error: function (){
        alert('error');
      }
    });
  });
}
于 2013-01-10T02:59:31.463 に答える
1

これは、コントローラーでアクションを作成することで実行できます。

class YourController < ApplicationController

   def index
   end

   def youraction
   end
end

次に、routes.rbでルートを設定します。

次に、そのURLを指すようにフォームを設定し、

remote: true

フォームタグのオプション。

于 2013-01-10T04:58:06.653 に答える