2013-03-16 58 views
1

我有一個在用戶儀表板(由儀表板視圖和儀表板控制器處理)上使用Simple Forms和remote => true的表單。該表格允許用戶添加自定義遊戲規則;但是,它通過Jquery的.load()函數加載表單。表單從「規則」視圖加載(由規則控制器處理)。在rails中使用simple_form和AJAX解析JSON錯誤

當用戶點擊提交按鈕時,我沒有得到任何錯誤驗證。

她是創建規則控制器上操作:

def create 
    @rule = Rule.new(params[:rule]) 

    respond_to do |format| 
    if @rule.save 
     format.html { redirect_to dashboard_path, notice: 'Rule was successfully created.' } 
     format.json { render json: @rule, status: :created, location: @rule } 
     format.js 
    else 
     format.html { render template: 'dashboard/index'} 
     format.json { render json: @rule.errors, status: :unprocessable_entity } 
     format.js 
    end 
    end 
end 

我有我的觀點文件夾名爲create.js.erb的js文件,該文件目前是空的。我認爲我必須以某種方式解析這個create.js.erb文件中的JSON錯誤數據,但我不知道該怎麼做。

此外,這種形式是由儀表板視圖/控制器調用,但表格正在由規則控制器處理嗎?

回答

4

試試下面的內部create.js.erb

$('.error-messages').remove(); 
<% if @rule.errors.any? %> 
    $('body').append('<ul class="error-messages"></ul>'); 
    <% @rule.errors.full_messages.each do |msg| %> 
    $('.error-messages').append('<%= escape_javascript msg %>'); 
    <% end %> 
<% end %> 

這會在你的身體標記追加錯誤。

+0

太棒了!非常感謝 – 2013-03-16 20:54:43