Rails 4选择菜单操作不能为零错误

时间:2014-06-13 15:49:14

标签: ruby-on-rails ruby-on-rails-4

我尝试使用Rails form_for和集合选择标记来填充数据库表中的选择菜单。当用户点击提交按钮时,选择将反映在我的购物猫表中(通过连接表CampaignItems)。目前我得到了:

First argument in form cannot contain nil or be empty error

该视图位于我的商店 index.html.erb 文件中。

以下是我的观点:

<% form_for @duration do |f| %>
    <%= f.collection_select :duration, Duration.all, :id, :name %>
    <%= f.submit 'Submit', campaign_items_path(duration_id: duration) %> 
<% end %>

我的持续时间控制器:

def index
    @durations = Duration.all
end
def new
    @duration = Duration.new
end

我的商店控制器:

def index
   @products = Product.order(:title)
   @cart= current_cart
   @durations = Duration.all
 end

1 个答案:

答案 0 :(得分:0)

  

表单中的第一个参数不能包含nil或为空错误

问题是您已在 @durations = Duration.all 中声明 index action ,但您使用的是 @duration form 。您应该使用 @durations

应该是这样的

<% form_for @durations do |f| %>
<%= f.collection_select :duration, Duration.all, :id, :name %
<%= f.submit 'Submit', campaign_items_path(duration_id: duration) %> 
<% end %>