Rails4:表单中未定义方法,一对一关联项目
Rails 4: Undefined method in form, one-to-one association project
我正在构建一个包含分享简历的应用程序。我正在使用 Devise gem。每个用户都可以创建 only one
份简历。我制作了模型及其关系。 Resume belongs_to User
和 User has_one Resume
.
制作视图后,我想测试我的应用程序,但我收到来自 _form.html.erb 的错误:undefined method resumes_path' for #<#<Class:0x00...>
。
这是我的form.rb:
<%= simple_form_for @resume, html: { multipart: true } do |f| %>
<% if @resume.errors.any? %>
<div id="errors">
<h2>
<%= pluralize(@resume.errors.count, "error") %>
prevented this resume from saving
</h2>
<ul>
<% @resume.errors.full_messages.each do |msg| %>
<li>
<%= msg %>
</li>
<% end %>
</ul>
</div>
<% end %>
<div class="form-group">
<%= f.input :title, input_html: { class: 'form-control' } %>
</div>
<div class="form-group">
<%= f.input :description, input_html: { class: 'form-control' } %>
</div>
<%= f.button :submit, class: "btn btn-primary" %>
<% end %>
为了提供更多关于我的代码的细节,我做了这个Gist。如果您需要我提供更多细节,请精确。
在这个应用程序中,我只希望用户能够创建一份简历,然后他就可以分享它。所以表单的预期行为是创建一个包含两个元素的简历:title
和description
,这是我第一次做一对一建模,我不知道应该怎么做组织起来。
在您的 routes.rb
中尝试在资源中使用复数名称:
resources :resumes, except: [:index]
http://guides.rubyonrails.org/routing.html#resource-routing-the-rails-default
提交表单后,应用程序会将您重定向到 resumes_path(默认情况下是 index-action for resumes)。问题是,这是唯一不允许在路由文件中使用 except:
的内容,如下所示:
resources :resume, except: [:index]
另外,如前所述,:resume
应该写成复数。
我正在构建一个包含分享简历的应用程序。我正在使用 Devise gem。每个用户都可以创建 only one
份简历。我制作了模型及其关系。 Resume belongs_to User
和 User has_one Resume
.
制作视图后,我想测试我的应用程序,但我收到来自 _form.html.erb 的错误:undefined method resumes_path' for #<#<Class:0x00...>
。
这是我的form.rb:
<%= simple_form_for @resume, html: { multipart: true } do |f| %>
<% if @resume.errors.any? %>
<div id="errors">
<h2>
<%= pluralize(@resume.errors.count, "error") %>
prevented this resume from saving
</h2>
<ul>
<% @resume.errors.full_messages.each do |msg| %>
<li>
<%= msg %>
</li>
<% end %>
</ul>
</div>
<% end %>
<div class="form-group">
<%= f.input :title, input_html: { class: 'form-control' } %>
</div>
<div class="form-group">
<%= f.input :description, input_html: { class: 'form-control' } %>
</div>
<%= f.button :submit, class: "btn btn-primary" %>
<% end %>
为了提供更多关于我的代码的细节,我做了这个Gist。如果您需要我提供更多细节,请精确。
在这个应用程序中,我只希望用户能够创建一份简历,然后他就可以分享它。所以表单的预期行为是创建一个包含两个元素的简历:title
和description
,这是我第一次做一对一建模,我不知道应该怎么做组织起来。
在您的 routes.rb
中尝试在资源中使用复数名称:
resources :resumes, except: [:index]
http://guides.rubyonrails.org/routing.html#resource-routing-the-rails-default
提交表单后,应用程序会将您重定向到 resumes_path(默认情况下是 index-action for resumes)。问题是,这是唯一不允许在路由文件中使用 except:
的内容,如下所示:
resources :resume, except: [:index]
另外,如前所述,:resume
应该写成复数。