首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >形式和强参数识别散列

形式和强参数识别散列
EN

Stack Overflow用户
提问于 2020-06-14 07:08:40
回答 1查看 39关注 0票数 1

我在一个名为FormsController的控制器中定义了以下强参数和新方法。用例是用户可以创建一个包含多个字段的表单。

代码语言:javascript
复制
class FormsController < ApplicationController
  def index
      @forms = Form.all
  end

  def new
    @form = Form.new(form_params)
  end

  ...

  private
    def form_params
      params.require(:form).permit(:user, :name, :tag, :link, :repo, :hpx_id, :tmp_id)
    end
end

并且当前使用以下新视图从用户获取一些输入

代码语言:javascript
复制
<div class="form">
  <%= simple_form_for @param do |f| %>
    <div class="form-inputs">
      <%= render "hpx_select", name: "[form]hpx_id", selected: (params[:hpx_id]) %>
    </div>
    <div class="form-inputs";>
      <%= f.input :user %>
      <%= f.input :name %>
      <%= f.input :tag %>
      <%= f.input :link %>
      <%= f.input :repo %>
    </div>
    <div class="form-inputs">
      <%= f.select(:tmp_id, options_for_select(@forms.map{ |t| [t.name, t.id] })) %>
    </div>
    <div class="form-actions">
      <%= f.button :submit, "Create", class: "btn-primary" %>
    </div>
  <% end %>
</div>

当我提交并创建一个新表单时,它插入如下内容:

代码语言:javascript
复制
SQL (6.4ms)  INSERT INTO "forms" ("user", "name", "tag", "link", "repo", "hpx_id", "tmp_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING "id"  [["user", "value1"], ["name", "value2"], ["tag", "value3"], ["link", "value4"], ["repo", "value5"], ["hpx_id", "id1"], ["tmp_id", "id2"], ["created_at", "2020-06-13 20:54:41.366047"], ["updated_at", "2020-06-13 20:54:41.366047"]]

在提交时,参数散列如下所示:

代码语言:javascript
复制
{“user”=>”value1”, “name”=>”value2”, “tag”=>”value3”, “link”=>”value4”, “repo”=>”value5”, “hpx_id”=>”id1”, "tmp_id"=>”id2”}

我检查了它为字段检查元素生成的名称:

代码语言:javascript
复制
<input type="text" name="form[user]" id="form_user">

从现在开始,是否可以将任何键或特定的散列数组赋给表单参数,以获得如下输出:

代码语言:javascript
复制
form_params => { 1 => {user: "user1" }, 2 => {user: "user2" }, 3 => {user: "user3" }.. }
form_params => { 1 => {name: "name1" }, 2 => {name: "name2" }, 3 => {name: "name3" }.. }
...

并按如下方式获取名称

代码语言:javascript
复制
<input type="text" name="form[1][user]" id="form_user">
EN

回答 1

Stack Overflow用户

发布于 2020-06-14 18:12:49

这一行就是问题所在,it should look like this

代码语言:javascript
复制
@form = Form.new(form_params)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62366569

复制
相关文章

相似问题

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