Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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 3 未定义的方法`model#u name';在由不同控制器渲染的部分场景中_Ruby On Rails 3_Partial Views_Simple Form_Controllers - Fatal编程技术网

Ruby on rails 3 未定义的方法`model#u name';在由不同控制器渲染的部分场景中

Ruby on rails 3 未定义的方法`model#u name';在由不同控制器渲染的部分场景中,ruby-on-rails-3,partial-views,simple-form,controllers,Ruby On Rails 3,Partial Views,Simple Form,Controllers,我正在尝试呈现此表单: <form class="form-inline"> <%= simple_form_for @prospect, :url => url_for(:action => 'create', :controller => 'prospects'), :method => 'post' do |f| %> <%= f.error_notification %> <%=

我正在尝试呈现此表单:

<form class="form-inline">
    <%= simple_form_for @prospect, 
    :url => url_for(:action => 'create', :controller => 'prospects'),
    :method => 'post' do |f| %>
    <%= f.error_notification %>
    <%= f.input :name,  placeholder: 'Name', label: false %>
    <%= f.input :email, placeholder: 'Email', label: false %>
    <%= f.input :interests, placeholder: 'Tell us what you were searching for', label: false, value: params[:search]  %>    
    <%= f.error :base %>
    <%= f.button :submit, "Submit", :class=> "btn" %>
<% end %>
到视频索引控制器停止错误发生,但我觉得这不是正确的方法。它实际上也不会使表单使用prospects控制器

EDIT2:我现在已经正确地进行了部分渲染(我想),我的视频#索引调用部分渲染,如下所示:

 <%= render partial: 'prospects/novideo_capture', :prospect => @prospect %>
<form class="form-inline">
    <%= simple_form_for :prospect, 
    :url => url_for(:action => 'create', :controller => 'prospects'),
    :method => 'post' do |f| %>
 ...
<% end %>
@prospect%>
然后部分中的简单形式如下所示:

 <%= render partial: 'prospects/novideo_capture', :prospect => @prospect %>
<form class="form-inline">
    <%= simple_form_for :prospect, 
    :url => url_for(:action => 'create', :controller => 'prospects'),
    :method => 'post' do |f| %>
 ...
<% end %>

(:action=>'create',:controller=>'prospects')的url_,
:method=>“post”do | f |%>
...

但是,它实际上并没有向prospects controller提交表单。知道为什么吗?

检查您的标记。您正在将一个简单的表单包装到另一个表单中。由于第一个表单标记没有与其关联的操作(
),因此该表单将根据当前URL(即视频索引)提交

你会想要这样的东西:

<%= simple_form_for :prospect, :url => etc, :method => 'post', :class => "form-inline" do |f|
  ...
<% end %>
etc,:method=>'post',:class=>“forminline”do | f|
...

丢失前导的(冗余的)表单内联表单标签,您就没事了。

提交表单时控制台中有显示任何内容吗?是的,但是视频索引控制器出于某种原因正在处理它,尽管它正在接收我提供给它的参数信息:由视频控制器处理作为HTML参数的索引:{“utf8”=>✓", "真实性令牌“=>”PvgOtUlXxzTp6hNZNSNtO8AyPXx0GP1dNfLi4ZJ+72I=“,”潜在客户“=>{”姓名“=>”测试“,”电子邮件“=>”test@test.com“,“兴趣”=>“测试”},“提交”=>“提交”}谢谢,我知道这会是很明显的事情!
<%= simple_form_for :prospect, :url => etc, :method => 'post', :class => "form-inline" do |f|
  ...
<% end %>