У меня есть небольшое приложение, где у меня есть даунтаун, и у меня есть свойства. У каждого центра города есть много свойств, и у каждого свойства есть один центр города.
В моем контроллере у меня были настройки, позволяющие создавать любые новые свойства под эгидой центра города, но теперь я решил добавить пользователей в микс ..... У меня проблема в том, что получение от существующего пользователя подтверждения владения одной из созданных им моделей.
Мои методы, связанные с контроллером, приведены ниже. Я думал, что строка, добавив @property.user_id = current_user.id
, позаботится об этом. Однако, если я тогда запускаю Property.last.user
, я получаю ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: users.property_id:
# GET /downtowns/1/properties/new
def new
set_downtown
@property = @downtown.properties.new
end
# POST /downtowns/1/properties
def create
set_downtown
@property = @downtown.properties.new(property_params)
@property.user_id = current_user.id
if @property.save
redirect_to @downtown
else
render :new
end
end
private
def set_downtown
@downtown = Downtown.includes(:properties).find(params[:downtown_id])
end
В моих моделях
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
has_many :properties
has_many :downtowns
end
class Property < ApplicationRecord
belongs_to :downtown
belongs_to :user
has_one :user
end
Не знаю, нужно ли мне вставьте это, но мои файлы маршрутов
Rails.application.routes.draw do
devise_for :users
root :to => "downtowns#index"
resources :cities
resources :downtowns do
resources :properties
end
end
Если кто-нибудь сможет взглянуть на это, я действительно буду благодарен! Большое вам спасибо!