簡體   English   中英

Ruby / Rails - 如何創建類並從Controller訪問它

[英]Ruby/Rails - How to Create a Class and Access it from the Controller

我一直在嘗試使用一些不同的寶石在rails 3中顯示googlemaps並且遇到了一些問題。

幸運的是我找到了這個https://github.com/YouthTree/bhm-google-maps這是一個幫手,它似乎適用於其他人。

我已正確安裝它,但在自述文件https://github.com/YouthTree/bhm-google-maps/blob/master/README.md中,它提到為要在視圖中顯示的對象創建一個類。

他們給出的例子是

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) %>

在視圖中。

這看起來很簡單但我沒有經歷過在rails之前創建類的需要,所以我有一些問題。

我應該創建一個location.rb文件並將上面的代碼放在其中,但是我應該在哪里放置文件? (模型文件夾,應用程序文件夾????)

有沒有辦法在我的控制器中創建這個類?

理想情況下,我想將lat / lng值作為變量進行操作並顯示動態映射。

您應該將location.rb放在您認為最有意義的地方。 將它放在app/models/location.rb將確保在您的應用啟動時自動需要它,但有些人希望app/models中的類由ActiveRecord支持。

如果您願意,也可以將它放在lib/下。

要使其可用於應用程序,您可以在config文件夾中的項目初始化程序中包含require語句:

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

至於在你的控制器內創建它 - 絕對! 它只是一個類的另一個實例:

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

然后在你看來:

<%= draw_map_of @location %>

不要忘記 - 在Rails之下是純Ruby的所有功能和靈活性,隨時可以使用。 你不僅限於Rails給你的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM