1

我有一个在用户仪表板上使用简单表单和远程 => true 的表单(由仪表板视图和仪表板控制器处理)。该表单允许用户添加自定义游戏规则;但是,它通过 Jquery 的 .load() 函数加载表单。表单正在从“规则”视图加载(由规则控制器处理)。

当用户单击提交按钮时,我没有得到任何错误验证。

她是规则控制器上的创建操作:

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

1 回答 1

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 %>

这将在您的正文标签中附加错误。

于 2013-03-16T04:09:43.960 回答