0
在我的rails應用程序中,我希望用戶能夠以「新」形式選擇一個選項,但是如果該選項已經存在,我希望它更新當前選項。在redirect_to rails中轉發post參數
我有這個迄今爲止在我的創建方法:
def create
@cost = Cost.new(cost_params)
if Cost.exists?(:category => @cost.category, :option => @cost.option)
redirect_to action: 'update', id: Cost.where(:category => @cost.category, :option => @cost.option).first.id
else
respond_to do |format|
if @cost.save
format.html { redirect_to action: 'index', status: 303, notice: [true, 'Cost was successfully created.'] }
format.json { render json: @cost, status: :created, location: @cost }
else
format.html { render action: "new" }
format.json { render json: @cost.errors, status: :unprocessable_entity }
end
end
end
end
的問題是,它重定向我,例如cost/9
URL,這使得顯示頁面。我希望將id與cost_params直接發送到更新方法:
def update
@cost = Cost.find(params[:id])
respond_to do |format|
if @cost.update_attributes(cost_params)
format.html { redirect_to action: 'index', status: 303, notice: [true, 'Cost was successfully updated.'] }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @cost.errors, status: :unprocessable_entity }
end
end
end
應該重定向到索引頁面。
是否有任何有效的方法來做到這一點?