私はできるだけシンプルにしようとします:
ストア製品リストに追加したい製品情報(名前、説明など)を取得するフォームがあります(モデルの関連付け:製品belongs_to :store
とストアを使用has_many :products
)。
その情報に加えて、「ON」ステータスフィールドを製品テーブルに追加したいと思います。なんで?製品の所有者が製品を削除したい場合、データベース上の製品を完全に破棄するのではなく、ステータスが「オフ」になります(統計上の理由から、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
ですか?
前もって感謝します。