Ruby on rails 如何在RubyonRails中添加模型?
我在向RubyonRails项目添加模型时遇到了一些问题。 我有一个可爱的控制器和模型,但控制器无法访问模型,因为符号似乎是。。。未定义 所以我似乎完全不明白Rails是如何选择要加载和不加载的类的 这是我的模型文件(是的,我知道,每个模型我都应该有一个文件。我确实有。但我一直在努力使它工作,目前我只有一个): 所有与饲料模型和控制器的工作只是膨胀。我只是对FeedController和其他一些类有这个问题,它们没有关联的控制器,就控制器而言,在我的Rails项目中似乎根本不存在 然后我有我的FeedSubscription\u控制器:Ruby on rails 如何在RubyonRails中添加模型?,ruby-on-rails,Ruby On Rails,我在向RubyonRails项目添加模型时遇到了一些问题。 我有一个可爱的控制器和模型,但控制器无法访问模型,因为符号似乎是。。。未定义 所以我似乎完全不明白Rails是如何选择要加载和不加载的类的 这是我的模型文件(是的,我知道,每个模型我都应该有一个文件。我确实有。但我一直在努力使它工作,目前我只有一个): 所有与饲料模型和控制器的工作只是膨胀。我只是对FeedController和其他一些类有这个问题,它们没有关联的控制器,就控制器而言,在我的Rails项目中似乎根本不存在 然后我有我的F
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
class FeedsubscribtionsControllerparams[:id],:feedId=>params[:feed]
@self.feedsubscription |=[subscription]
呈现json:{success:@self.save(validate:false),feed:params[:feed]}
终止
终止
def销毁
如果会话[:用户id]!=参数[:id]
@self=CurrentUser()
uid,fid=BSON::ObjectId.new(params[:id]),BSON::ObjectId.new(params[:feed])
@feed=@self.feedsubscribtions.where:userId=>uid,:fid=>fid
如果@feed.count>0
@feed.first.delete
@self.save(验证:false)
终止
终止
终止
终止
我一直在尝试一种变通方法,Feed方法会返回Feedsubscribtion实例。它是为“创造”工作的:不是为了“毁灭”。因为似乎Mongoid::Document.where尝试使用FeedSubscribtion。当然,失败了
我怎么了?
为什么地狱Rails不在其自己的文件之外提供FeedSubscription???首先,将您的模型重命名为FeedSubscription,然后将其放在app/models/feed\u subscription.rb的文件中。然后更改控制器上的引用以访问FeedSubscription类,并重命名方法Owner和Feed和CurrentUser,因为在Ruby中方法应始终以小写字母定义
当您在Ruby中定义以大写字母开头的内容时,它将使其成为常量。首先,将您的模型重命名为FeedSubscription,然后将其放在app/models/feed\u subscription.rb的文件中。然后更改控制器上的引用以访问FeedSubscription类,并重命名方法Owner和Feed和CurrentUser,因为在Ruby中方法应始终以小写字母定义
当您在Ruby中定义以大写字母开头的内容时,它将使其成为一个常量。并对控制器
feed\u subscriptions\u controller.rb
执行相同的操作,对控制器feed\u subscriptions\u controller.rb执行相同的操作
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