Ruby on Rails: как я могу назвать действие, у которого есть параметры из другого действия - PullRequest
1 голос
/ 16 июля 2010

Итак, я хочу сделать это:

save_to_library(params) if params[:commit] == "lib"

но save_to_library, очевидно, не принимает никаких аргументов.

как действия получают параметры, если они не принимают аргументы?

(я знаю, что это действие работает, когда я ссылаюсь на него напрямую ... просто пытаюсь упростить юзабилити)

Ответы [ 2 ]

5 голосов
/ 16 июля 2010

Ваш контроллер обрабатывает параметры и делает их доступными для вас методом accesor, они доступны для всего вашего контроллера без необходимости передавать его в параметрах метода.

3 голосов
/ 16 июля 2010

params - это глобальный хеш, представьте его так, как если бы он был определен вне метода:

params = {:commit => "lib"}

def save_to_library
  @var = params[:commit]
  # etc..
end

Если вы хотите выполнить некоторые условные действия, вы можете просто сделать это:

def update
  save_to_library if params[:commit] == "lib"
end

def save_to_library
  @var = params[:commit]   # @var = "lib"
  # etc..
end

И это должно сработать.

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