Tag: 实例

如何使用angularjs和ui路由器从rails获取实例变量?

我在我的状态路由器中使用模板。 我想从我的rails服务器获取一个实例变量,但它没有自己的路径,所以我不能使用Restangular或类似的东西。 此外,当我尝试插值时: #{@variable} 没有任何反应,因为我在我的ui路由器中的模板中,而不是在rails视图中。 那么如何从我的rails服务器获取一个实例变量到ui-router模板中的angularjs? 编辑: ahaa ….就像这样传递它: ng-init=”variablename = ‘variable'” 在我的情况下: ng-init=”varname = ‘#{@variable}’ ” 重要的是要注意两件事:1。“在……”中2.在你的RAILS VIEW中传递此信息,然后用ui-view =“”将其传递给ui路由器 然后在ui模板中,你可以说{{varname}}它应该在那里:)

Ruby on Rails:在视图中使用帮助程序初始化实例变量

我遇到了某种类型的范围问题,它阻止实例变量被视图调用的助手正确初始化。 #sample_controller.rb class SampleController < ApplicationController def test end end #application_controller.rb helper_method :display def display if not defined? @display return @display = "a" else return @display += "a" end end #test.html.erb 当显示样品/测试时,它会在“评估nil.reverse”时出现错误。 这是令人惊讶的,因为显示的前两个调用应该初始化@display我会想到。 如果删除,则输出为“a aa”,表示辅助方法正在设置@display实例变量,但视图中无法访问它。 如果控制器被修改成为(使用原始视图代码): class SampleController < ApplicationController def test display end end 输出变成“aa aaa aa”。 如果我在控制器中进行2次调用,我会得到“aaa aaaa aa aa”。 因此,似乎只有控制器中的调用才会修改SampleController实例变量,而视图中的调用将修改视图无法访问的ApplicationController的实例变量。 这是Rails中的错误还是我的误解,这是出于某种原因预期的function? 我遇到这个bug的上下文是试图创建一个logged_in? […]

如何使用rspec检查变量是否是模块子类的实例?

我有一个类似于以下的类结构: module MyModule class MyOuterClass class MyInnerClass end end end 我正在尝试确保使用Rspec将变量正确实例化为MyInnerClass。 打印类的类型,它是MyModule :: MyOuterClass :: MyInnerClass。 但是,如果我尝试运行该行 expect{@instance_of_MyInnerClass}.to be_an_instance_of(MyModule::MyOuterClass::MyInnerClass) 我收到错误“你必须通过一个参数而不是一个块来使用提供的匹配器。” 此外,课程在另一个地方,所以我不能只检查 […] be_an_instance_of(MyInnerClass) Rspec抱怨MyInnerClass是一个未初始化的常量。 所以,我想问一下如何使用RSpecvalidation变量是否是MyInnerClass的实例。

Ruby – 确保只有一个类对象

我有一个Model Bot ,我想确保我的数据库中只有一个Bot对象。 我还需要确保它是持久的而不是被篡改的。 我最初的想法是在迁移中执行此操作,该操作将遵循:bots表迁移。 它将包括一行如下: Bot.all.size == 0 ? Bot.create! : nil 也许这会阻止AR对象在将来的迁移中被搞乱? 奖励:能够对此类对象进行即时和全局访问真是太棒了。 我正在考虑在我的Bot类中使用singleton模块,这样我总是可以引用Bot.instance并且可以访问该特定对象。 使用案例: 我的数据库中有4种类型的用户,这个机器人将通过我们的应用内消息传递function为他们提供特定于角色的消息。 Class Bot将与BotMessage/bot_messages有一个has_many关联。 在bot_messages表上将是user_role的枚举字段。 消息将由公司管理员创建并存储在这些表中,因为我们希望通过查看用户和Bot之间的“对话”线程随时查看这些消息。 当谈到只有1个机器人时,就是这样。 我不需要额外的Bot对象。 此外,由于只有一个对象,因此能够有一种明确定位该对象的方法而不必运行查询来查找它。 例如,与可能有1000条记录的User不同,为了找到特定的记录,你会做类似@user = User.find_by_email(‘foo@bar.com’)事情,对机器人做类似的事情是没有必要的。因为只有一条记录可供查找。 这就是让我相信在这里有一个singleton对象可能是值得的,因此每当我需要为特定角色提取消息时,我可以运行Bot.instance.bot_messages.where(user_role: 1)或类似的东西

ruby pickaxe书说attr_accessor是类方法

在ruby镐书中,有一条线说 attr_accessor是类Module中定义的类方法 但是attr_accessor不是实例方法吗? 我在这里错过了什么吗?

Ruby实例方法和变量

有些东西我不了解ruby 类实例变量或方法** 。 所以我有这个代码继续给我这个错误,我无法理解 看起来ruby认为我正在尝试调用Float.in_celsius,但我想在我的类实例中进行此调用。 #———————————– def ftoc(fr) fr = fr.to_f if (fr == 32) c = 0 elsif (fr == 212) c = 100 else c = (fr-32.0)*(5.0/9.0) end return c end def ctof (cl) cl = cl.to_f f = (cl*(9.0/5.0))+32.0 return f end #———————————– class Temperature attr_accessor :in_celsius, :in_fahrenheit #class metods def self.from_celsius(cel) […]

Ruby实例变量或局部变量?

我是Ruby语言的新手。 我明白那个 @@count: Class variables @name: Instance variables my_string: Local variables 我记住以上内容。 但是,我发现了一个像这样的Ruby代码: class HBaseController < ApplicationController … def result conn = OkHbase::Connection.new(host: 'localhost', port: 9090, auto_connect: true) … end end ‘conn’让我很困惑。 ‘conn’是实例变量还是局部变量? ‘conn’的范围是什么?

在Ruby的许多类实例中记忆数据的好方法是什么?

考虑:生成数据的对象的许多实例。 每次运行只生成一次数据会很棒。 class HighOfNPeriods < Indicator def generate_data @indicator_data = DataStream.new (0..@source_data.data.count – 1).each do |i| if i < @params[:n_days] … @indicator_data.add one_data end end HighOfNPeriods不同实例有不同的params和不同的@source_data 。 以下是指标的使用方法: class Strategy attr_accessor :indicators def initialize params … end 从Strategy调用HighOfNPeriods.generate_data方法。 每个Strategy都会获得HighOfNPeriods的新实例,因此不可能将其作为某种全局值来实现。 除此之外,它不应该是全球性的。 unless @indicator_data不起作用,因为需要在HighOfNPeriods许多实例之间共享数据。 所以,问题是: What is a good way to memoize the instance variable `indicator_data` or […]

在类ruby之间共享实例变量

我知道这个问题之前已经得到了回答,但我似乎无法使任何解决方案都有效 我正在为我需要调用的API创建一个ruby包装器。 Interface类完成了api的所有会话处理和实际调用,但是我想为我将最常执行的函数构建帮助器类。 我遇到的问题是我需要一种方法来跨多个辅助类维护一个Interface类的实例。 这是我到目前为止的代码 require_relative ‘interface’ module Api_Helper attr_accessor :xmlmc #get a new instance of the interface, This should be the only instance used. #I don’t know if this needs to go in its own module def initialize server, port = ‘5015’ @xmlmc = Xmlmc::Interface.new server, port end end module Xmlmc class API include […]

模块中的实例方法

请考虑以下代码: module ModName def aux puts ‘aux’ end end 如果我们用class替换module ,我们可以执行以下操作: ModName.new.aux 但是,模块不能被实例化。 有没有办法在模块上调用aux方法?