我做了什么:
- 创建一个新的 ruby 应用程序
rails new campaigns_manager
- 移动到活动管理器目录,生成第一个脚手架活动
rails generate scaffold campaign name:string
并迁移 - 添加根路由
root to: 'campaigns#index', as: 'campaigns'
这么几串代码。然后我启动服务器来测试它。一切看起来和工作正常,但是当我尝试添加新的广告系列时,没有任何保存。按下“创建广告系列”按钮后,我在控制台中收到类似的信息:
Started POST "/" for 127.0.0.1 at 2012-04-25 22:30:40 +0300
Processing by CampaignsController#index as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"sKom3YBDEbOcqbSt3gLGWPqBNeqkEw6M59hlwrmH4tM=", "campaign"=>{"name"=>"test"}, "commit"=>"Create Campaign"}
Campaign Load (0.3ms) SELECT "campaigns".* FROM "campaigns"
Rendered campaigns/index.html.erb within layouts/application (0.9ms)
Completed 200 OK in 37ms (Views: 35.4ms | ActiveRecord: 0.3ms)
然后我重定向到广告系列列表并且没有新的广告系列。db\development.sqlite3中的表活动为空。
此外,我将打印方法添加到活动控制器以检查我是否调用了正确的方法。而且我看到,当我按下“创建广告系列”按钮时,不会调用该创建方法。
我的广告系列/新视图:
<h1>New campaign</h1>
<%= form_for(@campaign) do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
<%= link_to 'Back', campaigns_path %>
为什么我不能将我的广告系列保存到数据库?