我创建模型,视图和控制器,但是当我在new.html.haml文件中添加表单代码时。它开始显示错误。路线定义如下
模型popups.rb
class Popups < ActiveRecord::Base
attr_accessible :title, :body, :slug, :pipelinetype
end
控制器popups_controller.rb
class PopupsController < ApplicationController
def new
@popups = Popups.new
end
def create
@popups = Popups.new(params[:url])
if @popups.save
flash[:popups] = @popups.id
redirect_to new_popups_url
else
render :action => "new"
end
end
def show
@popups = Popups.find(params[:id])
redirect_to @popups.url
end
end
观看弹出式广告 - new.html.haml
= simple_form_for @popups do |f|
= f.input :title
= f.input :body
= f.input :pipelinetype
= f.input :slug
= f.submit
routes.rb resources :popups, :only => [:show, :new, :create]
迁移文件
create_table :popups do |t|
t.string :title
t.text :body
t.string :slug
t.string :pipelinetype
t.timestamps
end
我在给定网址上遇到以下错误
:3000/popups/new - undefined method `popups_index_path' for #
**:3000/popups -**
Unknown action
The action 'show' could not be found for MainController
最初我使用弹出名称创建模型和控制器,但稍后将其更改为建议的弹出窗口
代码或路线是否有问题,或者我错过了什么。
我使用http://www.sitepoint.com/building-your-first-rails-application-views-and-controllers/作为参考
答案 0 :(得分:1)
永远记住,当您使用resources
时,您应该提供 复数名称(例如,弹出窗口) 。如果您需要 单数名称(即弹出式广告) ,请使用resource
代替resources
。
有关详细信息,请参阅Singular Resources
答案 1 :(得分:0)
你必须将你的路线包括在内。
resources :popups, only: [:show, :new, :create]
应该
popup_index POST /popup(.:format) popup#create
实际上你的路线看起来像这样:
new_popup GET /popup/new(.:format) popup#new
popup GET /popup/:id(.:format) popup#show
account | amount | date_time