Я пересмотрел код из 200 раз. Может быть, я могу помочь вам найти волшебника, который сломает целое. Я создаю запись в комнате, которая связана с отелем, но также и с учетной записью. У меня нет проблем с записью данных. Пока я не передам данные через проверку. Когда проверка также выполняется, данные сохраняются, но когда я не хочу соответствовать их ожиданиям, естественно высвечивать ошибки, но, к сожалению, я не могу найти метод ошибки.
неопределенный метод "ошибки" для Room :: ActiveRecord_Associations_CollectionProxy: 0x00007ff8b2a36530
<% if @room.errors.full_messages.any? %>
<div class="error_explanation">
<h2><%= t('other.errors', :count => @room.errors.full_messages.size) %></h2>
<ul>
<% @room.errors.full_messages.each do |error_message| %>
<li><%= error_message %></li>
<% end %>
</ul>
</div>
<% end %>
Мой контроллер
def new
@account = Account.find(current_user.account_id)
@room = @account.rooms.new
@hotels = @account.hotels.all
rescue ActiveRecord::RecordNotFound
flash[:error] = "#{t 'alerts.Not_found'}"
redirect_to(rooms_manages_path)
end
def create
@account = Account.find(current_user.account_id)
@room = @account.rooms
@hotels = @account.hotels.all
if @room.create(room_params).valid?
flash[:success] = "#{t 'alerts.Is_save'}"
redirect_to(rooms_manages_path)
else
flash[:warning] = "#{t 'alerts.If_save'}"
render 'new'
end
rescue ActiveRecord::RecordNotFound
flash[:error] = "#{t 'alerts.Not_found'}"
redirect_to(rooms_manages_path)
end
Моя модель
class Room < ApplicationRecord
belongs_to :account
belongs_to :hotel
has_many :reservations
mount_uploaders :images, ImagesroomUploader
serialize :images, JSON # If you use SQLite, add this line.
validates :name, presence: true
end
class Account < ApplicationRecord
has_many :users, inverse_of: :account, dependent: :destroy
has_many :hotels
has_many :rooms
has_many :offers
has_many :reservations
has_many :widgets
has_many :accountsinvoices
has_many :accountspayments
end
Мой взгляд
<%= form_for(:room, :url => rooms_manages_create_path(), :html => {:id => "form"}) do |f| %>
<% if @room.errors.full_messages.any? %>
<div class="error_explanation">
<h2><%= t('other.errors', :count => @room.errors.full_messages.size) %></h2>
<ul>
<% @room.errors.full_messages.each do |error_message| %>
<li><%= error_message %></li>
<% end %>
</ul>
</div>
<% end %>
<%= render(:partial => "form", :locals => {:f => f}) %>
<div class="text-left">
<%= submit_tag("#{t 'other.actions.save'}", class: 'btn btn-primary') %>
</div>
<% end %>