首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义方法`_s_path误差

未定义方法`_s_path误差
EN

Stack Overflow用户
提问于 2016-01-11 08:34:43
回答 4查看 172关注 0票数 1

当我试图在我的应用程序中创建一个新的“广告”时,我收到了一个undefined method错误。

表格:

代码语言:javascript
复制
<div class="row">
<%= form_for @advertisement do |f| %>
<div class="form-group">
  <%= f.label :title %>
  <%= f.text_field :title, class: 'form-control', placeholder: "Enter Title " %>
</div>

路由(控制器和模型名称都是单数):

代码语言:javascript
复制
resources :advertisement

耙路:

代码语言:javascript
复制
    advertisement_index GET    /advertisement(.:format)          advertisement#index
                    POST   /advertisement(.:format)          advertisement#create
  new_advertisement GET    /advertisement/new(.:format)      advertisement#new
 edit_advertisement GET    /advertisement/:id/edit(.:format) advertisement#edit
      advertisement GET    /advertisement/:id(.:format)      advertisement#show
                    PATCH  /advertisement/:id(.:format)      advertisement#update
                    PUT    /advertisement/:id(.:format)      advertisement#update
                    DELETE /advertisement/:id(.:format)      advertisement#destroy

我知道错误:

代码语言:javascript
复制
undefined method `advertisements_path'

请帮帮我,我试过几件事,但似乎什么也没有用。提前谢谢你!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-01-11 09:13:16

试一试

代码语言:javascript
复制
<div class="row">
<%= form_for @advertisement, url: advertisement_index_path do |f| %>
<div class="form-group">
<%= f.label :title %>
<%= f.text_field :title, class: 'form-control', placeholder: "Enter Title" %>
</div>
票数 -1
EN

Stack Overflow用户

发布于 2016-01-11 09:14:32

控制器名应该是复数..。AdvertisementsController in advertisements_controller.rb

路线应该是复数的。resources :advertisements

模型应该是奇异的..。Advertisement in advertisement.rb

票数 1
EN

Stack Overflow用户

发布于 2016-01-11 09:15:14

好的,如果您想保持单数格式,可以使用以下方法设置窗体的路径:

代码语言:javascript
复制
<%= form_for @advertisement, url: advertisement_path do |f| %>

Rails中的首选项是将控制器设置为复数,所以是资源:广告和AdvertismentsController。

由于您已经创建了它,您可以将资源更改为:

代码语言:javascript
复制
resources :advertisements, :controller => 'advertisement'

这意味着:

代码语言:javascript
复制
advertisements GET    /advertisements(.:format)  advertisement#index
               POST   /advertisements(.:format)    advertisement#create
new_advertisement  GET    /advertisements/new(.:format) advertisement#new

因此,现在您将指向广告控制器

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

https://stackoverflow.com/questions/34717078

复制
相关文章

相似问题

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