首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails表单create没有看到传递给它的参数。

Rails表单create没有看到传递给它的参数。
EN

Stack Overflow用户
提问于 2014-12-10 06:06:18
回答 1查看 1.2K关注 0票数 1

感谢您的阅读,新的rails,但试图构建一个表单来传递参数。但是,在将参数输入表单后,create页面中的验证没有看到它,并给出了一个错误。但日志显示输入了参数..。我也在使用simple_form宝石。

主计长:

类FoundsController < ApplicationController

代码语言:javascript
复制
  def index
    @found = Found.all
  end

  def new
    @found = Found.new
  end

  def create
    @found = Found.new(found_params)
    if @found.save
        redirect_to "/founds#index"
    else
        render "new"
    end
  end
end

 def found_params
    params.require(:floc).permit(:ftitle, :fdescription, :fcontact)
end

新表格页:

代码语言:javascript
复制
<h1>Founds#new</h1>
<p>Find me in app/views/founds/new.html.erb</p>

<%= simple_form_for @found do |form| %>
  <%= form.input :floc, label: "floc" %>
  <%= form.input :fcontact, label: "fcontact" %>
  <%= form.input :fdescription, label: "fdescription" %>
  <%= form.input :ftitle, label: "ftitle" %>
  <%= form.button :submit %>
<% end %>

错误: param丢失或值为空: floc

代码语言:javascript
复制
def found_params
    params.require(:floc).permit(:ftitle, :fdescription, :fcontact)
end


Request

Parameters:

{"utf8"=>"✓",
 "authenticity_token"=>"bJ1bUhd3G8z4S1QV+XsEAHmOcdSQyQxVS0rOSAsq6YANvz9ED7lFTME6falij4nrXkWEypWsSnPW7k9YHFGhDQ==",
 "found"=>{"floc"=>"location",
 "fcontact"=>"contact",
 "fdescription"=>"descript",
 "ftitle"=>"title"},
 "commit"=>"Create Found"}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-10 06:15:07

除了强参数外,一切看起来都很好。

应该是params.require(:found).permit(:floc, :ftitle, :fdescription, :fcontact)

您正在告诉Rails,进来的params必须有:found键,嵌套在这个键下面是您真正关心的params。在这些参数中,只有允许的参数才能通过。不允许的参数不会通过,但不会抛出错误。

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

https://stackoverflow.com/questions/27394280

复制
相关文章

相似问题

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