首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >options_for_select on simple_form

options_for_select on simple_form
EN

Stack Overflow用户
提问于 2016-06-27 18:42:33
回答 1查看 3K关注 0票数 1

我可能是不正确地使用它,我无法理解它。

我正在simple_form上使用一个simple_form。它呈现得很好,没有错误,但是所选的选项没有保存到数据库中。所有其他字段都不存在任何问题。

select_tag是

代码语言:javascript
复制
<%= select_tag :experiment_type, options_for_select(['AOV', 'Conversion']), :prompt => "Select a Project Type" %>  

主计长:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-27 21:13:30

我需要您的完整表单布局来确定地告诉您,但是根据您的experiment_params方法,experiment_type字段是实验的一部分。但是,当您只使用select_tag时,它不会连接到您的主对象。您只需要使用select。与此类似:

代码语言:javascript
复制
<%= simple_form_for :experiment do |f| %>
...
<%= f.select ... %>
...
<% end %>

或者在表格格式

代码语言:javascript
复制
<%= f.input :experiment_type, collection: ['AOV', 'Conversion'] %>

我的猜测也是基于您的散列:

"experiment_type"=>"AOV",“=>”=>{“=>”测试.

experiment_type在你的“实验”之外。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38061038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档