2013-07-08 2 views
2

Я пытаюсь передать Params в метод диспетчерское format.html так:Rails: Титулы в format.html {делают ...}

def create 
    @doc = Doc.new(params[:doc]) 
    respond_to do |format| 
    if @doc.save 
     format.html { redirect_to share_url(@doc.user.ftp, @doc) } 
    else 
     format.html { render "new", :locals => { :template => @doc.template_id } } 
    end 
    end 
end 

Я получаю сообщение об ошибке не метод, который говорит мне, что я м посылает правильный параметр для :template в локальных переменных:

local_assigns {:template=>4} 

есть ли что-то я не хватает, чтобы получить, чтобы работать? Он должен перенаправить на действие doc#new, но вместо этого он отправится в doc#index. Есть идеи?

ответ

6

Используя этот синтаксис в контроллере:

render "new", :locals => { :template => @doc.template_id } 

означает, что вы визуализации new.html.erb шаблон, а не частично. Вы не можете передавать локальные переменные вместе с не частичным представлением. То, что вы должны делать, - это позвонить render "new" и ссылаться на @doc в этом представлении по мере необходимости.

Смежные вопросы