在rails模型

时间:2016-04-06 17:57:22

标签: ruby-on-rails ruby ruby-on-rails-4

我希望在我的模型中创建一个动态类,我想要的简单解释如下。

我有一个名为' feed'有一个' url'每个条目中的字段,我试图在我的模型中创建一个类,调用每个提要条目的相应URL。

  

e.g。饲料入口“lolcats'会打电话给网址www.lolcats.com'   在课堂内

以下是我在feed.rb模型中的当前课程

  def boom
    response = self.class.get("/tVv8nTahbhgkyIUW8ByCe0-7/last_ready_run/data?&format=json")
    @elements = response.parsed_response["image"]
    @parsed = @elements.collect { |e| e['url'] }
  end

它完美运行并显示所有数据,但显然非常静态和笨重 - 因为我不想开始为我想要呼叫的每个Feed添加单独的类。

在我看来,我有

<% @boom.each do |img| %>
  <div class="grid-item">
    <%= image_tag(img) %>
  </div>
<% end %>

我只是不知道怎么做,任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

  

我不想开始为我想要呼叫的每个Feed添加单独的课程。

我认为您的意思是个人 方法

您可以传入该网址,但我认为您不希望将/tVv8nTahbhgkyIUW8ByCe0-7/last_ready_run/data?&format=json作为一个参数传递出去,这是有充分理由的。

你提到了映射,所以我认为*你想要的是一个类常量:

class Feed < ActiveRecord::Base
  FEEDS = { ready_run:'/tVv8nTahbhgkyIUW8ByCe0-7/last_ready_run/data?&format=json',
           other_feed:'....',
           ... }

  def boom_for feed
    response = self.class.get(FEEDS[feed])
    @elements = response.parsed_response["image"]
    @parsed = @elements.collect { |e| e['url'] }
  end

要使用它,

boom_for :ready_run
  

我尝试在模型中创建一个类,调用每个Feed条目的相应URL。

我认为你的意思是制作 方法