在我的應用程序中,我有一個使用實例變量的products_controller。我在Ruby中對實例變量的理解是,你可以在同一個類的不同方法中使用它們。那麼爲什麼我們在rails應用程序的多個方法中使用相同的實例變量?下面我們有一個實例變量@product設置兩次,當我們在創建操作中使用它時,新操作中的@product變量是否未被覆蓋?理解Rails實例變量
我對這些變量的範圍在同一個類的方法中有點困惑。
def new
@product = Product.new
end
def create
@product = Product.new(product_params)
respond_to do |format|
if @product.save
format.html { redirect_to @product, notice: 'Product was successfully created.' }
format.json { render :show, status: :created, location: @product }
else
format.html { render :new }
format.json { render json: @product.errors, status: :unprocessable_entity }
end
end
end
這是不正確的。實例變量的作用域包括該實例的所有實例方法。 –
@KeithBennett是的。我會更新我的答案。 – Alfie