Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 共享部分-未保存记录-缺少参数或值为空-rails_Ruby On Rails_Ruby_Forms_Multipartform Data - Fatal编程技术网

Ruby on rails 共享部分-未保存记录-缺少参数或值为空-rails

Ruby on rails 共享部分-未保存记录-缺少参数或值为空-rails,ruby-on-rails,ruby,forms,multipartform-data,Ruby On Rails,Ruby,Forms,Multipartform Data,我无法保存新记录。数据/输入由表单提交-共享部分-显示在用户控制器呈现的视图中 在users\u controller.rb中,查看页面user\u home.html.erb: def user_home if user_signed_in? @user = current_user @cpe_event = CpeEvent.new end end (删除@cpe\u event=CpeEvent.new会导致表单中的第一个参数在视图中不能包含nil或为空错误。)

我无法保存新记录。数据/输入由
表单提交
-共享部分-显示在
用户控制器呈现的视图中

users\u controller.rb
中,查看页面
user\u home.html.erb

def user_home
  if user_signed_in?
    @user = current_user
    @cpe_event = CpeEvent.new
  end
end
(删除
@cpe\u event=CpeEvent.new
会导致
表单中的第一个参数在视图中不能包含nil或为空
错误。)

在我的
cpe_events_controller.rb中,我有一个#创建操作:

def create
  @cpe_event = CpeEvent.new
  @user = current_user     
  @cpe_event = current_user.cpe_events.build(cpe_event_params)
  ...
数据以表格形式提交-共享部分:

<%= form_for @cpe_event, url: cpe_events_path, method: :post, 
html: { multipart: true }, class: 'form-inline form_for form_for_content' do |f| %>
允许的参数代码为:

def cpe_event_params
  params.require(:cpe_event).permit(....
如果我在
def create
之后放置
raise params.inspect
,我会得到提交的参数的散列:

{"utf8"=>"✓", "authenticity_token"=>"u1...1g==", "sponsor_name"=>"WI - TEST",
"class_date"=>"2014-01-01", "title"=>"How Account", "commit"=>"Submit",
"controller"=>"cpe_events", "action"=>"create"}
如果我从
@cpe_event=current_user.cpe_events.build(cpe_event_params)
行中删除
(cpe_event_params)
,并检查输出,我会得到一个值为零的记录-用户标识除外:

#<CpeEvent id: nil, course_id: nil, recruiter_id: nil, sponsor_id: nil, user_id: 2,
created_at: nil, updated_at: nil,....
提交的值-:赞助商名称、:类别日期和:标题-应保存为数据库中的字符串


我如何解决这个问题?谢谢

我认为,在您表单提交的以下参数中,没有名为“cpe_事件”的参数,这就是为什么它在使用以下方法要求“cpe_事件”参数时抛出错误的原因。确保表单提交了“cpe_事件”参数

params.require(:cpe_event).permit(....
{“utf8”=>“✓", "真实性令牌“=>”u1…1g==”,“赞助商名称”=>“WI” 测试“,”课程日期“=>”2014-01-01“,”标题“=>”如何记账“, “提交”=>“提交”、“控制器”=>“cpe_事件”、“操作”=>“创建”}


你是对的;然而,这并不能解决问题。根据您的输入,我重新发布了问题(#30464733)。我想问题出在
f.选择
字段而不是
f.text\u字段
谢谢您的帮助!你能把你表格的查看代码发给我吗?因为在提交表单时,上述参数的格式不正确。它的格式应该是
{“utf”=>…,“cpe\u事件”=>{form parameters come here},“提交”=>“提交”,“控制器”=>“cpe\u事件”,“操作”=>“创建”}
param is missing or the value is empty: cpe_event
params.require(:cpe_event).permit(....