gpt4 book ai didi

ruby-on-rails - Ruby/Rails - 如何创建类并从 Controller 访问它

转载 作者:数据小太阳 更新时间:2023-10-29 06:37:47 24 4
gpt4 key购买 nike

我一直在尝试使用一些不同的 gem 在 rails 3 中显示 googlemaps,但遇到了几个问题。

幸运的是我找到了这个https://github.com/YouthTree/bhm-google-maps这是一个 helper ,它似乎对其他人有用。

我已经正确安装了它,但在自述文件中 https://github.com/YouthTree/bhm-google-maps/blob/master/README.md它提到为要在 View 中显示的对象创建一个类。

他们举的例子是

class Location
attr_accessor :address, :lat, :lng
def initialize(address, lat, lng)
@address = address
@lat = lat
@lng = lng
end
def to_s; address.to_s; end
end

然后运行

 <%= draw_map_of Location.new("My House", 12.345, 56.789) %>

在 View 中。

这看起来很简单,但我以前没有在rails中体验过创建类的需要,所以我有一些疑问。

我是否应该创建一个 location.rb 文件并将上面的代码放入其中,但是我应该将文件放在哪里? (模型文件夹,应用文件夹????)

有没有办法在我的 Controller 中创建这个类?

理想情况下,我想将 lat/lng 值作为变量进行操作并显示动态 map 。

最佳答案

您应该将 location.rb 放在您认为最合理的位置。将它放在 app/models/location.rb 将确保在您的应用程序启动时自动需要它,但有些人希望 app/models 中的类由 ActiveRecord 支持。

如果你愿意,你也可以把它放在 lib/ 下。

要使其对应用程序可用,您可以在配置文件夹内的项目初始值设定项中包含 require 语句:

require "#{Rails.root}/lib/location.rb"

至于在你的 Controller 中创建它 - 当然!它只是一个类的另一个实例:

def show
@location = Location.new("My House", 12.345, 56.789)
end

然后在你看来:

<%= draw_map_of @location %>

不要忘记——在 Rails 之下是纯 Ruby 的所有功能和灵 active ,随时可以使用。您不仅限于 Rails 为您提供的功能。

关于ruby-on-rails - Ruby/Rails - 如何创建类并从 Controller 访问它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5174377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com