当我试图在我的应用程序中创建一个新的“广告”时,我收到了一个undefined method错误。
表格:
<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>路由(控制器和模型名称都是单数):
resources :advertisement耙路:
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我知道错误:
undefined method `advertisements_path'请帮帮我,我试过几件事,但似乎什么也没有用。提前谢谢你!
发布于 2016-01-11 09:13:16
试一试
<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>发布于 2016-01-11 09:14:32
控制器名应该是复数..。AdvertisementsController in advertisements_controller.rb
路线应该是复数的。resources :advertisements
模型应该是奇异的..。Advertisement in advertisement.rb
发布于 2016-01-11 09:15:14
好的,如果您想保持单数格式,可以使用以下方法设置窗体的路径:
<%= form_for @advertisement, url: advertisement_path do |f| %>Rails中的首选项是将控制器设置为复数,所以是资源:广告和AdvertismentsController。
由于您已经创建了它,您可以将资源更改为:
resources :advertisements, :controller => 'advertisement'这意味着:
advertisements GET /advertisements(.:format) advertisement#index
POST /advertisements(.:format) advertisement#create
new_advertisement GET /advertisements/new(.:format) advertisement#new因此,现在您将指向广告控制器
https://stackoverflow.com/questions/34717078
复制相似问题