gpt4 book ai didi

ruby - 如何从 Rails 中的 View 表单中获取模型中的参数值?

转载 作者:太空宇宙 更新时间:2023-11-03 16:22:52 24 4
gpt4 key购买 nike

这是我的new.html.erb

<%= form_for :simulation, url: simulations_path do |f|  %>

<div class="form-group">
<%= f.label :Name %>
<div class="row">
<div class="col-sm-2">
<%= f.text_field :name, class: 'form-control' %>
</div>
</div>
</div>

<div class="form-group">
<%= f.label :'Rendering Option' %>
<div class="Dropdown">
<div class="col-sm-4">
<%= select_tag(:is_random, options_for_select([['Random', true], ['No Opinion', false]], selected: :is_random )) %>
</div>

</div>
<div class="row">
<div class="col-sm-6">
<%= f.submit 'Submit', class: 'btn btn-primary' %>
</div>

模拟 Controller .rb

class SimulationsController < ApplicationController
def index
@simulations = Simulation.all
end

def new
end

def create
@simulation = Simulation.new(simulation_params)
@simulation.save
redirect_to @simulation
end

def show
@simulation = Simulation.find(params[:id])
end

结束

Simulation.rb(模型类)

class Simulation < ActiveRecord::Base
belongs_to :user
end

架构.rb

 create_table "simulations", force: :cascade do |t|
t.string "name"
t.boolean "is_random"
end

我无法在数据库中设置 :is_random 值,但休息没问题。我在这里做错了什么?我检查了 sqlite 数据库中的值,is_random 列中有 null 条目。

最佳答案

在进行批量分配时,您需要允许 属性。你可以把它写成:

<%= f.select(:is_random, options_for_select([['Random', true], ['No Opinion', false]], selected: :is_random )) %>

<%= select_tag("simulations[:is_random]", options_for_select([['Random', true], ['No Opinion', false]], selected: :is_random )) %>

使用您的语法,该值位于 params 散列中,如 {..., is_random: true,..},这就是强参数过滤方法内部的原因你不明白。如果您现在使用建议的解决方案,您将获得 params 散列中的值,如 {..., simulations: { is_random: true,..}, ...}.

您可以在发出请求时从 development.log 文件中检查所有这些内容。

关于ruby - 如何从 Rails 中的 View 表单中获取模型中的参数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31085376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com