【问题标题】:Rails 4 Select Menu action cannot be nil errorRails 4 选择菜单操作不能是零错误
【发布时间】:2014-06-14 00:19:22
【问题描述】:

我正在尝试使用 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

【问题讨论】:

  • 请格式化您的帖子,现在无法理解。
  • 抱歉,这是我的第一篇文章,这样更好吗?
  • 是的,欢迎来到 Stack Overflow!
  • @user3738181 你到底想从那个表单中实现什么?创建duration 记录,或为活动添加持续时间,或添加产品记录等?如果您能解释清楚,我们可以为您提供更好的帮助。
  • @KirtiThorat 我正在尝试添加持续时间,持续时间将类似于(1 个月,2 个月...),然后有一个与我想要添加的值相关联的值到我的购物车,但我打算使用campaign_items 作为将我的购物车链接到我的工期表的外键。

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


【解决方案1】:

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

问题是您在 index action 中声明了 @durations = Duration.all,但您在 中使用 @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 %>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    相关资源
    最近更新 更多