2017-09-27 102 views
0

我看了幾個帖子在SO和幾個博客,但他們沒有明確表示如何呈現在一個視圖中的錯誤消息,當您使用:remote => true使用遠程真正從JSON響應渲染錯誤信息軌道 - 如何同時在形式

我相信我沒有試圖做一些之前沒有做過。

所以我有一個表格

<%= form_for template, url: url, html: {class: 'padding-top-10'}, :remote => true do |f| %> 
    <%= f.text_field :name, class: 'form-control', placeholder: 'What is the name of the new role?' %> 
    <%= f.submit 'CREATE' , class: 'btn-block btn btn-primary'%> 
<% end %> 

所有我想要的是,當我提交表單,我希望能夠在屏幕上顯示錯誤消息的用戶。

def add_job_template 
    @template = JobTemplate.new(job_template_strong_params) 
    if @template.save 
    render json: { success: 'Information has been saved' }} 
    else 
    render json: { errors: @template.errors.full_messages }, status: 422 
    end 
end 

現在的問題。 如何顯示在我看來這successerrors迴應?

回答

0

您需要一種方法來處理響應,你可以設置一個消息實例變量具體取決於該記錄已經或尚未保存的值,然後在迴應你的方法的js文件,做你需要什麼該值:

def add_job_template 
    @template = JobTemplate.new(job_template_strong_params) 
    @message = @template.save ? 'Template saved' : 'Template not saved' 
    respond_to :js 
end 

然後在你的應用程序/視圖/模板/ add_job_template.js.erb可以顯示的@message值:

console.log('<%= @message %>') 

如果您呈現一個JSON你所需要的數據,但如果你反對,你需要說些什麼去做找到一個js格式,然後它會查找一個名爲當前方法的js文件。

+0

不是我想要的,但會做的伎倆,現在 – Saadia