Ruby on rails -Как написать определение, которое должно быть выполнено, когда мы выполняем вызов контроллера независимо от вызываемого метода - PullRequest
0 голосов
/ 14 декабря 2011

в приложении rubyonrails я хочу обновить базу данных независимо от вызванного метода. принять «обновление» будет общее определение.

Если я вызываю метод import, контроллер должен выполнить код в определении метода import, а также общий метод обновления.

class Admin::ReportsController < ApplicationController


def update

    respond_to do |format|
      format.html  #index.html.erb
    end
  end

def index

    respond_to do |format|
      format.html  #index.html.erb
    end
  end



def import

    respond_to do |format|
      format.html  #index.html.erb
    end
  end

Ответы [ 2 ]

1 голос
/ 14 декабря 2011

Добавьте перед фильтром к контроллеру.например:

before_filter :common_update_method
1 голос
/ 14 декабря 2011

Хорошо, это немного яснее.

ответ заключается в том, что вы можете добавить методы к контроллерам, которые можно использовать в нескольких действиях, например:

class Admin::ReportsController < ApplicationController

  def update
    @objects = get_objects

    respond_to do |format|
      format.html  #index.html.erb
    end
  end

  def import
    @objects = get_objects

    respond_to do |format|
      format.html  #index.html.erb
    end
  end

  # using protected means that the methods below here won't be recognised as new actions
 protected
 def get_objects
    unless params[:my_objects].present?
       flash[:notice] = "no objects!"
       return redirect_to(:action => :index)
    end
    objects = []
    params[:objects].each do |obj|
       objects << object.new(obj)
    end
    objects

 end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...