0

我一直在試圖讓Rails 4從驗證的差異模型中顯示多個表單。視圖渲染罰款將全部的形式,但是當表單提交和內容的錯誤,我呈現後面的索引作用和它的展示單頁多模型和驗證Rails 4.2

形式第一個參數不能包含零或爲空

我控制器

def index 
    @oneWay = OneWay.new 
    @twoWays = TwoWay.new 
end 

def one_way 
    @form = OneWay.new(one_params) 

    if @form.valid? 
    else 
    render :index 
    end 
end 

我查看

<%= simple_form_for @twoWays, url: fleet_return_path, as: 'two_way', validate: true do |f| %> 

我已經試過

<%= simple_form_for @twoWays, url: fleet_return_path, as: 'two_way', validate: true do |f| %> 

但它呈現,但沒有驗證錯誤。

路線

constraints(FleetSubdomain) do 
    namespace :fleet, path: '/' do 
    get '/' => 'fleet#index', as: 'index' 
    post 'one_way' => 'fleet#one_way', :as => 'one_way' 
    post 'return' => 'fleet#returning', :as => 'return' 
    end 

end 
+0

嘗試渲染動作:「index」而不是 – chaitanya

回答

0

需要補充的地方顯示錯誤 如。 從http://ruby.railstutorial.org/book/ruby-on-rails-tutorial

/app/views/shared/_error_messages.html.erb

<% if object.errors.any? %> 
    <div id="error_explanation"> 
    <div class="alert alert-error"> 
    The form contains <%= pluralize(object.errors.count, "error") %>. 
    </div> 
    <ul> 
    <% object.errors.full_messages.each do |msg| %> 
    <li>* <%= msg %></li> 
    <% end %> 
</ul> 
</div> 
<% end %> 

你查看

<%= simple_form_for @twoWays, url: fleet_return_path, as: 'two_way', validate: true do |f| %> 
     <%= render 'shared/error_messages', object: f.object %> 
<% end %> 
0

看來你已經給表單動作錯誤的URL,在你有'fleet_return_path'的形式,你顯示的動作是one_way,你有這樣的命名路線還是你想這樣做,

<%= simple_form_for @twoWays, url: one_way_path, as: 'two_way', validate: true do |f| %> 

<% if f.errors.any? %> 
     <div id="error_explanation"> 
     <div class="alert alert-error"> 
     The form contains <%= pluralize(f.errors.count, "error") %>. 
     </div> 
     <ul> 
     <% f.errors.full_messages.each do |msg| %> 
     <li>* <%= msg %></li> 
     <% end %> 
    </ul> 
    </div> 
    <% end %> 
    ---- ------- ---------- 
<% end %> 

請參閱我已更改表單中的網址,以便它轉到您在問題中提供的操作。

+0

這是一個命名空間,命名爲route – rilly009

+0

那麼它會進入one_way動作嗎?請粘貼該路線 – Sravan