0

我会尽量简单:

我有一个表格,可以获取我想添加到商店产品列表中的产品信息(名称、描述等)(使用模型关联:产品belongs_to :store和商店has_many :products)。

除了该信息之外,我还想在产品表中添加一个“开启”状态字段。为什么?如果产品所有者想删除产品,状态会变为“关闭”,而不是完全销毁数据库中的产品(出于统计原因,我必须保留数据 6 个月。)

这是我的控制器代码:

# Create a new product for the actual company.
def create

    # Get store information.
    @store = Store.find_by_id session[:store_id]

    # Set new store product.
    product = @store.products.build(
        :name   => params[:product][:name],
        :desc   => params[:product][:desc],
        :url    => params[:product][:url],
        :status => 'ON'
        )

    if product.save
        redirect_to :back, :notice => 'Product successfully created.'
    else
        redirect_to :back, :alert => 'Something goes wrong.'
    end
end

我试过这个快捷方式,但它不起作用:

product = @store.products.build(params, :status => 'ON')

我的问题是,如何添加:status => 'ON'比列出所有更优雅params

提前致谢。

4

2 回答 2

2
product = @store.products.build(params[:product])
product.status = 'ON'
于 2012-08-15T10:28:19.623 回答
1

我认为你可以创建一个范围,比如说scope :enabled, conditions: {status: 'ON'},然后你可以做product = @store.products.enabled.build(params[:product])

于 2012-08-15T13:45:48.173 回答