#ruby-on-rails-3 #view #render
#ruby-on-rails-3 #Вид #отрисовка
Вопрос:
У меня есть следующий код в моем контроллере
def create
@severity = Severity.new(params[:severity])
if @severity.save
flash[:notice] = "Successfully created severity"
render 'save'
end
end
Я пытаюсь получить метод для визуализации другого файла представления, отличного от create.js.erb, однако контроллер всегда отображает значение по умолчанию, а не save.js.erb.
Есть идеи о том, что может быть не так?
Ответ №1:
def create
@severity = Severity.new(params[:severity])
if @severity.save
flash[:notice] = "Successfully created severity"
respond_to do |format|
format.js { render :template => "/path/to/save" }
end
end
end
или
def create
@severity = Severity.new(params[:severity])
if @severity.save
flash[:notice] = "Successfully created severity"
respond_to do |format|
format.js { render :file => "/path/to/save.js.erb" }
end
end
end
попробуйте это
def create
@severity = Severity.new(params[:severity])
if @severity.save
flash[:notice] = "Successfully created severity"
end
render :file => "/path/to/save.js.erb"
end
Комментарии:
1. это не сработало, я добавил версию кода шаблона отрисовки, указывающую на серьезность / сохранить, и он по-прежнему отображал файл create.js.erb по умолчанию. Нужно ли указывать полный путь?
2. как вы вызываете это действие? через ajax?
3. Да, у меня есть form_for с атрибутом:remote => true
4. По-прежнему безуспешно, несмотря на то, какой метод я использую, чтобы попытаться отобразить другое представление, по умолчанию всегда используется рендеринг create.js.erb
5. и если вы попробуете это:
render :text => "Hello world!"
если он не вернетсяhello world
, тогда ваша проблема не в том, что вы думаете