我尝试使用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
答案 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 %>