Рельсы 4 до принятия передачи параметров в вызываемом методе


у меня есть следующий код:

class SupportsController < ApplicationController
  before_action :set_support, only: [:show, :edit, :update, :destroy]
  ....

можно ли передать строку в метод set_support применяется для всех 4 способов посмотреть? Можно ли передать другую строку в метод set_support для каждого метода в представлении?

4 65

4 ответа:

before_action only: [:show, :edit, :update, :destroy] do
  set_support("value")
end

вы можете использовать лямбда:

class SupportsController < ApplicationController
  before_action -> { set_support("value") }, 
    only: [:show, :edit, :update, :destroy]
  ...

короткий и однострочный ответ (который я лично предпочитаю для обратные вызовы) составляет:

before_action except:[:index, :show] { method :param1, :param2 }

еще пример:

after_filter only:[:destroy, :kerplode] { method2_namey_name(p1, p2) }

вы можете передать лямбда в before_action и передать params[:action] до set_support способ такой:

class SupportsController < ApplicationController
  before_action(only: [:show, :edit, :update, :destroy]) ->{|c| c.set_support params[:action]}
  ....