在Rails中,我有以下Active Record Collection:
@products = Product.all
Run Code Online (Sandbox Code Playgroud)
我需要遍历此集合并从中删除一些对象而不从数据库中删除它们.因此,使用
@products.each do |product|
if CONDITION
product.delete
end
end
Run Code Online (Sandbox Code Playgroud)
不起作用,因为这也将从数据库中删除产品.有没有办法从这个集合中删除特定的产品而不从数据库中删除它们?
在Rails中,我正在尝试实施一个控制器操作,允许客户更改他们订阅的计划.根据Stripe文档,可以按如下方式完成:
customer = Stripe::Customer.retrieve("CUSTOMER_ID")
subscription = customer.subscriptions.retrieve("SUBSCRIPTION_ID")
subscription.plan = "premium_monthly"
subscription.save
Run Code Online (Sandbox Code Playgroud)
我将每个客户的ID保存在我的数据库的用户表中,但我仍然坚持如何根据客户ID检索客户的订阅ID.这个项目中的每个客户只有一个订阅,我如何根据他们的客户ID来拉动这个?
在 Rails 项目中,我对控制器 exchange.rb 有以下控制器操作:
def update_ordid
# Get the active exchange
@exchange = Exchange.find(params[:id])
# Decide which order ID field to update
active_order_field = params[:ordfld]
# Save the order ID
order_id = params[:ordid]
if active_order_field == 1 then
@exchange.order_id_1 = order_id
else
@exchange.order_id_2 = order_id
end
@active_exchange.save
respond_with(@exchange)
end
Run Code Online (Sandbox Code Playgroud)
我已经设置了一个到这个控制器操作的路由:
resources :exchanges do
collection do
get 'update_ordid'
end
end
Run Code Online (Sandbox Code Playgroud)
我想调用此操作,该操作接受来自交易所 show.html.erb 页面上的表单的订单 ID。我需要传递三个值:
接下来我需要创建一个自定义表单,它将这些值作为参数传递给操作。我还没有找到关于如何做到这一点的好教程,但我的第一个想法是设置以下内容:
<%= form_for(@exchange) do |f| %>
<div class="field">
<%= …Run Code Online (Sandbox Code Playgroud)