массив public можно использовать на всех моделях, контроллерах и представлениях. - PullRequest
0 голосов
/ 31 марта 2011

Мне нужно заполнить массив результатов поиска, чтобы к их информации можно было получить доступ из любой модели, контроллера или представления.возможно ли это?

module AdsHelper
attr_reader :table

def initialize
    @table = []
end

 def add_ads_table(ads)
     ads.each do |ad|
        @table << ad
     end
 end
end

@ table - это "публичный" массив

class AdsController < ApplicationController
attr_reader :tabla
include AdsHelper

  def index
    order = sortable_column_order
    if params[:search]
       @ads = Ad.search(params[:search], params[:page],params[:sort])
       add_ads_table(@ads)
    else
        @ads = Ad.paginate(:per_page => 4, :page => params[:page], :order => order)
        add_ads_table(@ads)
    end

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @ads }
    end
  end
end

после заполнения массива. Я хочу показать информацию в представлении той же модели Ad

1 Ответ

0 голосов
/ 31 марта 2011

Похоже, вы ищете глобальную переменную для меня.Просто начните объявление переменной с символа $ вместо @, например:

def initialize
    $table = []
end

Используйте с осторожностью!Глобальный код с большим количеством букв может привести к довольно внушительному беспорядку, не говоря уже о странных сценариях, связанных с ними.Просто предупреждение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...