Здесь находится посылка:Редактирование reply_to in Rails 3
У меня есть модель под названием «Правила», которая имеет соответствующий контроллер и вид. Я хочу, чтобы пользователь мог создать новое правило из своей панели мониторинга, которая имеет отдельный вид и контроллер.
Приборная панель имеет три вкладки под названием «Правила», «Rulesets, и„Игры“. Каждая вкладка имеет свой собственный частичное, так и для правил я использую _rules.erb частичный, который выглядит как этот
<div id="dashboard-rules" class="dashboard-panel ui-nav-panel">
<%= button_to'Create A Rule', '#', id: "create-rule-btn", class: "btn btn-primary" %>
<div id="create-rule-form-container">
</div>
...
</div>
Использование JQuery, я загружать содержимое страницы New Rules, который управляется контроллером правил, как это ...
$('#create-rule-btn').click (e) ->
e.preventDefault()
$('#create-rule-form-container').load('/rules/new.html .form-horizontal')
это загрузит только форма из правил/new.html. Моя проблема заключается в том, что когда я нажимаю кнопку «Сохранить правило», она перенаправляет URL-адрес/rules, а затем либо отображает erro rs или говорит «Правило сохранено успешно». Я бы хотел, чтобы он не перенаправлялся и ошибки отображались на панели управления ... опять же, а не перенаправлял URL-адрес/rules.
Это мои правила создают действия, которые я думаю, что нужно изменить, я просто не знаю, как:
def create
@rule = Rule.new(params[:rule])
respond_to do |format|
if @rule.save
format.html { redirect_to @rule, notice: 'Rule was successfully created.' }
format.json { render json: @rule, status: :created, location: @rule }
else
format.html { redirect_to :controler => "dashboard"}
format.json { render json: @rule.errors, status: :unprocessable_entity }
end
end
end
Я знаю, что я должен возиться с тем, как respond_to работает, я просто не» не знаю как.
Хорошо, так что я добавил переменные из контроллера Dashboard в Правила создания действия в правилах контроллера и использовать код при условии. Редирект работал так спасибо за это! Однако, поскольку он создает новый HTTP-запрос и обновляется до основного индекса панели, я теряю форму, которая была добавлена путем вызова jQuery.load AJAX. Я думаю, может быть, ваше последнее предложение может быть лучше. Не уверен, как это сделать. –
Я добавил быстрое решение js. надеюсь, вы можете понять остальное :) – jvnill
Хммм, я думаю, что это на правильном пути. Теперь он отправляется через AJAX, но я вообще не получаю никаких сообщений об ошибках или успехе, и он не сохраняет данные в базе данных. –