我可能是不正确地使用它,我无法理解它。
我正在simple_form上使用一个simple_form。它呈现得很好,没有错误,但是所选的选项没有保存到数据库中。所有其他字段都不存在任何问题。
select_tag是
<%= select_tag :experiment_type, options_for_select(['AOV', 'Conversion']), :prompt => "Select a Project Type" %> 主计长:
class ExperimentsController < ApplicationController
before_action :find_advertiser
before_action :find_experiment, only: [:edit, :update, :show, :destroy]
def index
@experiments = Experiment.all.order("created_at DESC")
end
def show
end
def new
@experiment = Experiment.new
@advertisers = Advertiser.all.map{ |c| [c.name, c.id] }
end
def create
@experiment = Experiment.new(experiment_params)
@experiment.advertiser_id = params[:advertiser_id]
if @experiment.save
redirect_to advertiser_path(@advertiser)
else
render 'new'
end
end
def edit
@projects = Project.all.map{ |c| [c.name, c.id] }
end
def update
@experiment.advertiser_id = params[:id]
if @experiment.update(experiment_params)
redirect_to experiment_path(@experiment)
else
render 'edit'
end
end
def destroy
@experiment.destroy
redirect_to root_path
end
private
def experiment_params
params.require(:experiment).permit(:advertiser_id, :name, :experiment_type, :hypothesis, :priority, :status, :launch_date,
:description, :baseline_url, :test_url, :baseline_aov_60, :baseline_aov_30, :baseline_aov_mtd,
:baseline_conversion_60, :baseline_conversion_30, :baseline_conversion_mtd)
end
def find_advertiser
@advertiser = Advertiser.find(params[:advertiser_id])
end
def find_experiment
@experiment = Experiment.find(params[:id])
end
end发布于 2016-06-27 21:13:30
我需要您的完整表单布局来确定地告诉您,但是根据您的experiment_params方法,experiment_type字段是实验的一部分。但是,当您只使用select_tag时,它不会连接到您的主对象。您只需要使用select。与此类似:
<%= simple_form_for :experiment do |f| %>
...
<%= f.select ... %>
...
<% end %>或者在表格格式中
<%= f.input :experiment_type, collection: ['AOV', 'Conversion'] %>我的猜测也是基于您的散列:
"experiment_type"=>"AOV",“=>”=>{“=>”测试.
experiment_type在你的“实验”之外。
https://stackoverflow.com/questions/38061038
复制相似问题