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 %>