Возможно, это вопрос новичков, но я не уверен, какие условия искать.Как кэшировать объекты модели ActiveRecord через перенаправления?
Скажем, у меня есть объект CUSTOMER, и я хочу отправить СООБЩЕНИЕ этому клиенту.
Что бы я сделал первым, это добавить действие SENDMESSAGE на контроллере CUSTOMER, который создает объект сообщения. (Предположим, что это правильная вещь?)
В этом случае, однако, вместо того, чтобы отправлять сообщение изнутри этого действия, мне нужно переслать в редактируемое представление СООБЩЕНИЯ, чтобы захватить основной текст и т. Д.
Вопрос: Я хочу сделать это, не сохраняя объект. Я хочу создать объект здесь, а затем передать его в другое представление для завершения.
def sendmessage
@message = Message.new
@message.title = 'WIBBLE'
@message.thecustomer = self
@message.save
respond_to do |format|
format.html { redirect_to(edit_message_path(@ message)) }
format.xml { render :xml => @ message }
end
end
Может быть, мой вопрос сводится к тому, что такое «рельсам пути» к параметрам кэшей и объектам по запросам и несколько экранов.
С удовольствием указывайте на веб-адреса, как я ожидаю, это просто.
Благодаря
Большое спасибо, Джон.Содержание сеанса в файле cookie звучит как нечетное дизайнерское решение! –
Могу ли я также спросить, используете ли вы сеанс для кэширования действий контроллера. например мое действие INDEX выполняет фанковый запрос на основе входящих параметров. Я хочу кэшировать этот конкретный список результатов для последующего вызова SENDMESSAGE. (Это потенциально может означать тысячи объектов, хранящихся в cookie сеанса, так что угадайте их нет.) Однако во время вызова SENDMESSAGE у меня нет всех параметров, необходимых для повторного восстановления списка CUSTOMER? Может кэшировать эти параметры? (Множество способов сделать это, но ищет путь к рельсам!) –
Похоже на кэширование параметров, чтобы вы могли восстановить запрос, было бы возможным. Обратите внимание, что я сказал, что хранилище сеансов cookie является стандартным Rails. config.action_controller.session_store' в 'environment.rb' позволяет вместо этого использовать базу данных для хранения сеанса. –