Я разработал обычное браузерное игровое приложение Rails.Сейчас я добавляю CloudMailin к миксу, эффективно выставляя альтернативный интерфейс по электронной почте.
Рассмотрим в качестве примера моего существующего действия create
:
class GamesController < ApplicationController
def create
@game = Game.params[:new]
if @game.random_create
# Asked to create a game using random choices.
# Make the random choices, then present it to the user for tweaking
@game.expand_random_choices
render :action => new
else
# Fully specified. Create the game
begin
@game.save!
# ...other work including DB operations ...
flash[:notice] += 'Game was successfully created.'
redirect_to :action => :play, :id => @game
rescue ActiveRecord::RecordInvalid
@game.valid?
render :action => 'new'
end
end
end
end
У менямой PbemController для обработки электронной почты Cloudmailin:
class PbemController < ApplicationController
# Handle inbound email
def handle
if email_is_a_game_creation
...
end
render :text => "Handled"
end
end
Какой самый лучший и СУЩЕСТВЕННЫЙ способ вызвать существующее поведение create
из PbemController
?Является ли мой единственный реальный вариант извлечения каждого «общего» действия для модуля в /lib' and
включающим это в каждом контроллере?