Rails 4.1使用部分和渲染当前路径

时间:2014-07-13 22:59:42

标签: ruby-on-rails ruby-on-rails-4 simple-form

使用rails 4.1,我在root上呈现联系人部分=>页#回家。在创建操作失败后,它会呈现contacts / new。成功后会创造出来。

使用验证呈现当前根路径的最佳方法是什么?如果错误或成功,我想将所有内容保存在同一视图中。我找到了类似的答案,很多都在轨道3或之前。似乎没什么用。

部分视图

 <%= simple_form_for @contact, :html => {:class => 'form-horizontal col-sm-12'} do |f| %>

控制器

class ContactsController < ApplicationController
     def new
    @contact = Contact.new
  end

  def create
    @contact = Contact.new(params[:contact])
    @contact.request = request
    if @contact.deliver
      flash.now[:notice] = 'Thank you for your message. We will contact you soon!'
    else
      flash.now[:error] = 'Cannot send message.'
      render :new
    end
  end

end

1 个答案:

答案 0 :(得分:0)

调用@contact.valid?将填充@contact.errors.full_messages任何验证失败。然后你可以创建一个部分的东西:

<%- unless model.errors.full_messages.empty? %>

  <ul>

    <%- model.errors.full_messages.each do |message| ->

      <li><%= message %></li>

   <%- end %>

  </ul>

<%- end %>

然后在根操作视图中呈现部分:

<%= render partial: "path/to/partial", locals: { model: @contact } %>