2016-09-24 2 views

ответ

1

Каждый получить запрос на новый экземпляр CounterController, поэтому он всегда начинается с нуля. Вот почему всякий раз, когда вы создаете переменную экземпляра, например @post, ее нет в следующем запросе. @counter - еще один пример этого.

Альтернативой может быть, чтобы сделать это экземпляр класса ...

class CounterController < ApplicationController 

    @counter = 0 

    def self.add 
    @counter += 1 
    end 

    def self.counter 
    @counter 
    end 

    def home 
    end 

    def add 
    class.add 
    end 

    def show_counter 
    class.counter 
    end 

end 
+0

Спасибо Стив! Я последовал твоему примеру и изменил некоторые вещи. –

+0

В ruby ​​@@ variable_name используется для переменной класса, а имя @variable_name используется для имени переменной экземпляра. –

+0

@ c0de222, за исключением того, что каждый класс является экземпляром суперкласса и поэтому может иметь свои собственные переменные экземпляра, называемые переменными экземпляра класса. Этот ответ объясняет это хорошо. http://stackoverflow.com/a/15773671/2516474 – SteveTurczyn

Смежные вопросы