Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在RubyonRails中添加模型?_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何在RubyonRails中添加模型?

Ruby on rails 如何在RubyonRails中添加模型?,ruby-on-rails,Ruby On Rails,我在向RubyonRails项目添加模型时遇到了一些问题。 我有一个可爱的控制器和模型,但控制器无法访问模型,因为符号似乎是。。。未定义 所以我似乎完全不明白Rails是如何选择要加载和不加载的类的 这是我的模型文件(是的,我知道,每个模型我都应该有一个文件。我确实有。但我一直在努力使它工作,目前我只有一个): 所有与饲料模型和控制器的工作只是膨胀。我只是对FeedController和其他一些类有这个问题,它们没有关联的控制器,就控制器而言,在我的Rails项目中似乎根本不存在 然后我有我的F

我在向RubyonRails项目添加模型时遇到了一些问题。 我有一个可爱的控制器和模型,但控制器无法访问模型,因为符号似乎是。。。未定义

所以我似乎完全不明白Rails是如何选择要加载和不加载的类的

这是我的模型文件(是的,我知道,每个模型我都应该有一个文件。我确实有。但我一直在努力使它工作,目前我只有一个):

所有与饲料模型和控制器的工作只是膨胀。我只是对FeedController和其他一些类有这个问题,它们没有关联的控制器,就控制器而言,在我的Rails项目中似乎根本不存在

然后我有我的FeedSubscription\u控制器:

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类,并重命名方法OwnerFeedCurrentUser,因为在Ruby中方法应始终以小写字母定义


当您在Ruby中定义以大写字母开头的内容时,它将使其成为常量。

首先,将您的模型重命名为FeedSubscription,然后将其放在app/models/feed\u subscription.rb的文件中。然后更改控制器上的引用以访问FeedSubscription类,并重命名方法OwnerFeedCurrentUser,因为在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