0
我有兩個型號:
1.Personne無法保存在軌嵌套屬性5
class Personne < ApplicationRecord
has_one :proprietaire
accepts_nested_attributes_for :proprietaire
validates :nom, :prenom, :tel, :email,
presence: true
end
2的Propriétaire
class Proprietaire < ApplicationRecord
belongs_to :personne
validates :commune_id, :quartier,
presence: true
end
控制器是:
class PersonneController < ApplicationController
def display_proprietaires
@proprietaires = Personne.all
#@proprietaires = @proprietaires.proprietaire
end
def new_proprietaire
@provinces = Province.where(:parentId => nil)
@communes = Province.where.not(:parentId => nil)
@personne = Personne.new
@personne.build_proprietaire
end
def create_proprietaire
@proprietaire = Personne.new(proprietaire_params)
@proprietaire.build_proprietaire
respond_to do |format|
if @proprietaire.save
flash[:notice] = "succes"
flash[:type] = "success"
format.html { redirect_to action: :display_proprietaires }
else
flash[:notice] = "fail"
flash[:type] = "warning"
format.html { redirect_to action: :display_proprietaires }
end
end
end
def proprietaire_params
params.require(:personne).permit(:nom, :prenom, :tel, :email, proprietaire_attributes: [:id, :commune_id, :quartier]).except(:province, :commit)
end
end
的觀點是:
<%= form_for @personne, :url => url_for(:controller=>'personne', :action=>'create_proprietaire') do |f| %>
<div class="row">
<div class="col-xs-6 col-sm-6 col-lg-6">
<div class="form-group">
<%= f.label(:nom, 'Nom : ') %>
<%= f.text_field :nom, {class: "form-control", placeholder: 'Nom'} %>
</div>
<div class="form-group">
<%= f.label(:prenom, 'Prenom : ')%>
<%= f.text_field :prenom, {class: "form-control", placeholder: "Prenom"} %>
</div>
<div class="form-group">
<%= f.label(:tel, 'Telephone : ')%>
<%= f.text_field :tel, {class: "form-control", placeholder: "Telephone"} %>
</div>
<div class="form-group">
<%= f.label(:email, 'Email : ') %>
<%= f.text_field :email, {class: "form-control", placeholder: "Email"} %>
</div>
<div class="form-group">
<%= label_tag(:province, 'Province : ') %>
<%= select_tag(:province, options_for_select(@provinces.collect{|value| [value.denomination, value.id]}), {class: "form-control", id: "province", remote: true}) %>
</div>
<%= f.fields_for :proprietaire do |proprio| %>
<div class="form-group">
<%= proprio.label(:commune_id, 'Commune : ') %>
<%= proprio.select :commune_id, options_for_select(@communes.collect{|value| [value.denomination, value.id]}),{}, {class: "form-control", id: "commune"} %>
</div>
<div class="form-group">
<%= proprio.label :quartier, "Quartier" %>
<%= proprio.text_field :quartier, {class: "form-control", placeholder: "Quartier"} %>
</div>
<% end %>
<%= f.submit "Enregistre", {class: 'btn btn-info'} %>
<% end %>
路線:
resources :personne do
collection do
post :create_proprietaire
get :display_proprietaires
get :new_proprietaire
end
end
我在回報率是全新的,當我試圖挽救什麼也沒有發生,我得到這個:
有人可以幫助我解決這個問題。謝謝!
你有你的驗證失敗,或者需要協會沒有設置 – AndreyS
@AndreyS非常感謝你很多,這是沒有設定的必要協會。我在這裏找到了解決方案http://blog.bigbinary.com/2016/02/15/rails-5-makes-belong-to-association-required-by-default.html – hakif
好吧,我會將它作爲答案發布所以 – AndreyS