0
我正致力于使用记录显示表的功能,每个记录带有单选按钮拒绝和批准。用户选择适当的单选按钮并按下过程。控制权传递给process_campaigns。从这里它分解数据并分析每个记录的状态。如果它被批准,它将重定向到批准块并且与拒绝相同。在每次迭代中创建Campaign的新实例
以下参数传递:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"9TCExvCmDahAWGQloPdaRkSowbBaxZGwZnRa8sbNkWM=", "campaign"=>{"2"=>{"start_date"=>"2016-07-18 15:43:00", "end_date"=>"2016-10-15 12:20:00", "merchant_revenue"=>"10", "status"=>"Approved", "notes"=>""}, "1"=>{"start_date"=>"2016-07-15 12:20:00", "end_date"=>"", "merchant_revenue"=>"10", "status"=>"Approved", "notes"=>""}}, "Commit"=>"Process"}
def process_campaign
authorize! :operator, current_user.operator
params[:campaign].each do |key, value|
if value[:status] == "Approved"
redirect_to approve_operator_campaign_path(key), :id => key, :start_date => value[:start_date], :revenue_mode => value[:revenue_model], :end_date => value[:end_date], :active => true, :status => 307 and return
elsif value[:status] == "Rejected"
redirect_to reject_operator_campaign_path(key), campaign_name: key, notes: value[:notes], :status => 307 and return
end
end
redirect_to operator_campaigns_path, flash: { notice: "Campaigns have been processed."}
end
def reject
authorize! :operator, current_user.operator
params[:campaign].each do |key, value|
if value[:status] = "Rejected"
@campaign = Campaign.active.where(id: key, operator_id: current_user.operator_id).last!
@campaign.data.merge!({:notes=>value[:notes]})
@campaign.status = "Rejected"
@campaign.save(validate: false)
end
end
end
def approve
@campaign = Campaign.find(params[:id])
params[:campaign].each do |key, value|
if value[:status] = "Approved"
@applied_campaign = AppliedCampaign.new(:campaign_id => key, :start_date => value[:start_date]||Time.now, :end_date => value[:end_date], :active => true)
end
end
end
时控制传递到批准或拒绝整个运动串与包含内,而我想单独的每条记录都记录过去了,分别通过它的问题是。任何人都可以指出为什么整个广告系列字符串被传递?
谢谢,但它现在说'没有路由匹配[GET]“/运营/活动/ 2 /拒绝“'但我想POST/PUT到那条路。我需要改变什么? – EamonnMcElroy
检查使用rake生成的路径:路由 –
用于operator_campaigns控制器的post/put批准操作 –