передача параметров между методами контроллера (рельсы) - PullRequest
1 голос
/ 31 октября 2011

у меня есть 2 метода контроллеров, создающих и показывающих

def create
   @message2 = Message.new(params[:message])
   if @message2.valid?
   @message2 = current_user.sent_messages.create(params[:message])         
      redirect_to @message2.receiver    
    else
      redirect_to :back
    end
end

и

def show

   @message = Message.find(params[:id])
   if current_user==@message.receiver
     @message.is_read=true
     @message.save
     @message2=Message.new(:receiver_id=>@message.sender, :sender_id=>current_user,:theme=>@message.theme)
   else
     @message2=Message.new(:receiver_id=>@message.receiver, :sender_id=>current_user,:theme=>@message.theme)
   end


end

моя форма

= form_for(@message2) do |f|

  %p
    Content:
    %br
    = f.text_area :content ,:rows => 5,:id => "text_area",
                :cols => 45

  .actions
    = f.submit

в представлении show у меня есть форма, которая инициализирует @ message2.content, но действие create очищает все параметры, которые я установил в действии show, и устанавливает только значение содержимого. Как заставить мою форму добавлять параметры (не чистить старые)?

1 Ответ

1 голос
/ 31 октября 2011
def create
  @message2 = current_user.sent_messages.new(params[:message])         
  if @message2.save
    redirect_to @message2.receiver    
  else
    render :action => :show
  end
end

Вот как должно выглядеть ваше create действие.Это широко используемая идиома Rails.

Она правильно отобразит форму, потому что переменная экземпляра все еще там.

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