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

标签 ruby ruby-on-rails-4 view controller

这是我的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/

相关文章:

javascript - 如何在单击按钮时使输入字段可见,或在单击按钮时为 ruby​​ on Rails 创建相同的字段

java - 重定向到 View 文件中的外部 URL

ruby 正则表达式 : Rejecting whole words

ruby - 正则表达式任何非数字有异常(exception)

ruby - 推广 cucumber / capybara 测试

ruby-on-rails - 断言assert_valid_keys的: Unknown key: :order (ArgumentError)

ruby-on-rails - 在 Rails 4 中向模型和强参数添加注释会引发错误

java - Android中如何让6个按钮调用不同参数的同一个方法?

android - 在 JetPack Compose 中手动重构所有 AndroidView

ruby-on-rails - 未定义的方法 `symbolize_keys!' 为 2 :Fixnum