我有以下代碼:導軌和JSON響應顯示閃爍在阿賈克斯
我jobs.html.erb
<div class="alert alert-error" style="display: none;"></div>
<p><%= link_to t("jobs.index.buttons.similar_functions"), user_email_settings_path, :class => "nice medium blue button", :id => "saveAgent" %> <small id="agent-saved" style="font-size: 1em !important;display: none;"><%= t("jobs.index.saved_agent") %></small><br /></p>
在該頁面,我有以下腳本:
$("#saveAgent").on('click', function (event) {
event.preventDefault();
$("#saveAgent").addClass("disabled");
if($("#saveAgent").hasClass("disabled")) {
$.ajax({
type: 'POST',
url: $(this).attr("href"),
data: $("form").serialize(),
complete: function() {
$("#agent-saved").show(1).delay(20000).fadeOut(800);
$("#saveAgent").removeClass("disabled");
alert("<%= flash[:error] %>");
$('div.alert').show();
$('div.alert').text("<%= flash[:error] %>");
}
});
}
});
link_to轉到我的電子郵件settings_controller.rb誰有以下代碼:
def create
api_params = params[:criteria]
api_params = params[:criteria].reject{|k,v| v.to_s.blank?}
@j = JobAgent.new(name_for_job_agent(current_user), true, api_params)
result = Sap.submit_job_agent(@j.name, @j.to_xml, api_params_for_user)
parser = MessageParser.new(result.body["RESULT"])
parser.messages.each do |message|
if message.type = "E"
flash[:error] = "test"
respond_to do |format|
format.json { render :json => flash}
end
end
end
end
現在,因爲它是ajax,我無法以正常的方式渲染閃爍,並且必須通過JSON傳遞某些內容。我的代碼似乎有50%的時間有效,有時他返回正確的「測試」,有時他什麼都沒有返回。
這是這樣做的正確方法嗎?我怎樣才能讓它工作100%。
謝謝!
編輯1:
我想下面,發現這裏:How to send simple json response in Rails?
def testme
respond_to do |format|
msg = { :status => "ok", :message => "Success!", :html => "<b>...</b>" }
format.json { render :json => msg } # don't do msg.to_json
end
end
但我怎麼在我的完整功能,閱讀味精?
親愛的主席先生,我已將其更改爲flash.now [:error] =「Hello world」並嘗試執行alert(「<%= flash.now [:error]%>」);和警報(「<%= flash [:error]%>」); flash.now.error都是空的 – Vinozio