У меня возникла какая-то проблема при добавлении моделей в мой проект Ruby on Rails.
У меня есть симпатичная копия контроллера и модели, но контроллер не может получить доступ к модели, потому что символ, кажется, ... undefined.
Так что, похоже, я совсем не понимаю, как Rails выбирает, какие классы загружать, а какие не загружать.
Вот мой файл модели (и ДА, я знаю, у меня должен быть файл для каждой модели. И я сделал. Но я пробовал все, чтобы это работало, и в настоящее время у меня только один):
class Feed
include Mongoid::Document
field :name, :type => String
field :description, :type => String
field :public, :type => Boolean, :default => false
has_many :posts, :class_name => 'FeedPost'
embedded_in :user
def isSubscribed? user
res = user.feedsubscribtions.where :userId => self.user.id, :feedId => self.id
res.count > 0
end
end
class Feedsubscribtion
include Mongoid::Document
field :userId, :type => String
field :feedId, :type => String
embedded_in :user
def Owner
user = User.where :id => self.userId
if user != nil then user.first else nil end
end
def Feed
user = Owner()
feed = user.feeds.where :id => self.feedId
if feed != nil then feed.first else nil end
end
end
Все, что работает с моделью Feed и контроллерами, просто великолепно. У меня просто есть эта проблема с FeedControllers и несколькими другими классами, которые не имеют связанных контроллеров, и просто, кажется, даже не существуют в моем проекте Rails, насколько это касается контроллеров.
И тогда у меня есть мой feedsubscribetion_controller:
class FeedsubscribtionsController < ApplicationController
has_to_be_connected
def create
if session[:user_id] != params[:id]
@self = CurrentUser()
subscribtion = Feedsubscribtion.new :userId => params[:id], :feedId => params[:feed]
@self.feedsubscribtions |= [ subscribtion ]
render json: { success: @self.save(validate: false), feed: params[:feed] }
end
end
def destroy
if session[:user_id] != params[:id]
@self = CurrentUser()
uid, fid = BSON::ObjectId.new(params[:id]), BSON::ObjectId.new(params[:feed])
@feed = @self.feedsubscribtions.where :userId => uid, :fid => fid
if @feed.count > 0
@feed.first.delete
@self.save(validate: false)
end
end
end
end
Я пытался сделать обходной путь, при котором метод Feed вернул бы мне экземпляр Feedsubscribetion. Это работало для «создания»: не для «уничтожения». Потому что, кажется, Mongoid :: Document.where пытается использовать FeedSubscribetion. И терпит неудачу, конечно.
Что со мной происходит?
Почему, черт возьми, Rails не делает Feedsubscribetion доступным вне собственного файла ??