何らかの理由で、検証エラー メッセージがウィンドウに表示されません。それはtwitter-bootstrapと関係がありますか? ビデオ チュートリアルを見た覚えがありますが、残念ながら今は見つかりません。
_レコードの部分的な形
<%= form_for [@estate,@record] do |f| %>
<% if @record.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@record.errors.count, "error") %> prohibited this record from being saved:</h2>
<ul>
<% @record.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
.......
......
...
<% end %>
私のレコードモデル
validates :E1, presence: true
validates :E2, presence: true
validates :E3, presence: true
validates :E4, presence: true
validates :R1, presence: true
validates :R2, presence: true
validates :R3, presence: true
validates :R4, presence: true
validates :Year, presence: true
validate :validation
コントローラーの create および update メソッド
def create
@record = @estate.records.build(params[:record])
respond_to do |format|
if @record.save
format.html { redirect_to [@estate,@record], notice: 'Record was successfully created.' }
format.json { render json: @record, status: :created, location: @record }
else
format.html { render action: "new" }
format.json { render json: @record.errors, status: :unprocessable_entity }
end
end
end
# PUT /records/1
# PUT /records/1.json
def update
@record = Record.find(params[:id])
respond_to do |format|
if @record.update_attributes(params[:record])
format.html { redirect_to [@estate,@record], notice: 'Record was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @record.errors, status: :unprocessable_entity }
end
end
end
レコードがエステートに属し、エステートには多くのレコードがあることは何か関係がありますか。レコードの作成中に「 @record = @estate.records.build(params[:record])」を行うように、デバッガーを使用してデバッグしようとしましたが、レコードの作成時にelse部分に入っていないことがわかりました。レコード モデルからの検証をチェックせずにレコードを直接作成しています。