![](/img/trans.png)
[英]How to access nested resource parameters from parent controller in Ruby on Rails?
[英]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.