我有小问题。我有两种方法,索引和创建。当我尝试检查randomUserId中的内容时,我看到'nill',但在查看中一切正确。为什么可变返回无
def index
@randomUserId = rand(1..30)
end
def create
puts "RANDOM: "
puts @randomUserId
end
我有小问题。我有两种方法,索引和创建。当我尝试检查randomUserId中的内容时,我看到'nill',但在查看中一切正确。为什么可变返回无
def index
@randomUserId = rand(1..30)
end
def create
puts "RANDOM: "
puts @randomUserId
end
puts
returns nil它输出一个字符串后,所以create
方法返回零。
create
和index
是两种非常不同的方法。在一个Controller
他们不被召集在一起。你只打一个或另一个。根据您提供的代码,您只需在index
操作中设置值@randomUserId
....不在create
操作中。您无法调用用于其他操作的变量 - 您将其设置为不再存在的值,并且将(正确)返回nil
。
如果您想在创建操作中使用@randomUserId
的值,则必须在create
操作中再次设置它,或者以某种方式通过参数传递它。
如果前者只是复制表示@randomUserId =rand(1..30)
的行。
如果是后者,那么在我们可以帮助您之前,您需要告诉我们更多关于您想要做什么,您的意见等等。
你如何检查'randomUserId'中的内容?如果你正在创建一个新的实例,你需要先调用'index' .. – Buddy
这是一个类吗?您是否在创建之前调用索引? – lcguida
你用'ruby-on-rails'标记了你的问题,所以我想你实际上正在尝试创建一个控制器,用'index'和'create'作为动作。你似乎不了解MVC的基础知识,所以我建议你先阅读一些文档。 – Nax