2015-06-14 2 views
0

У меня мало проблем. У меня есть два метода, индекс и создание. Когда я пытаюсь проверить, что происходит в randomUserId, я вижу «nill», но в View все правильно.Почему переменная return nil

def index 
    @randomUserId = rand(1..30) 
    end 

    def create 
    puts "RANDOM: " 
    puts @randomUserId 

    end 
+2

Как вы пытаетесь проверить, что находится в 'randomUserId'? Если вы создаете новый экземпляр, вам нужно сначала вызвать 'index'. – Buddy

+1

Является ли это классом? Вы вызываете индекс перед созданием? – lcguida

+2

Вы отметили свой вопрос 'ruby-on-rails', поэтому, я полагаю, вы на самом деле пытаетесь создать контроллер с' index' и 'create' в качестве действий. Вы, кажется, не понимаете основ MVC, поэтому я бы предложил вам сначала прочитать некоторую документацию. – Nax

ответ

0

putsreturns nil после того, как он выводит строку, так что create метод возвращает ноль.

0

create и index - это два очень разных метода. В Controller они не называются вместе. Вы звоните только один или другой. В соответствии с кодом, который вы поставили, вы устанавливаете значение @randomUserId в действии index .... не в действии create. Вы не можете вызвать переменную, используемую в другом действии, - значение, которое вы установили для нее больше, и будет (правильно) возвращать nil.

Если вам нужно значение @randomUserId в действии create, вы должны установить его снова в действии create или передать его через параметры как-то.

Если первый, просто скопируйте строку, которая говорит @randomUserId =rand(1..30).

Если последнее, то вам нужно будет рассказать нам гораздо больше о том, что вы пытаетесь сделать, о ваших взглядах и т. Д., Прежде чем мы сможем вам помочь.