ActiveRecord产生双重消息

时间:2018-06-21 18:51:35

标签: ruby-on-rails activerecord scaffold

此脚手架生成的代码最终会打印两次相同的消息,而我无法停止它。

  def update
    respond_to do |format|
      if @indi.update(indi_params)
        puts("message about to be shown to us by the system")
        format.html { redirect_to @indi, notice: 'Indi was successfully updated.' }
        format.json { render :show, status: :ok, location: @indi }
      else
        format.html { render :edit }
        format.json { render json: @indi.errors, status: :unprocessable_entity }
      end
    end
  end

它在网页中两次打印成功消息。

1 个答案:

答案 0 :(得分:1)

要结束的问题:

问题在布局和视图中都处于双重渲染状态。他有:

<body>
  <% if notice %>
    <p class="alert alert-success"><%= notice %></p>
  <% end %>
  <% if alert %>
    <p class="alert alert-danger"><%= alert %></p>
  <% end %> 
  <%= yield %> 
</body>

并位于show.html.erb顶部:

<p id="notice"><%= notice %></p>

这导致notice的两次显示。解决的方法是简单地从show.html.erb中删除并进行布局。布局使此类代码得以重复使用