【问题标题】:Checkboxes with join table and rails带有连接表和导轨的复选框
【发布时间】:2014-01-08 19:47:06
【问题描述】:

我有一个用户表、活动表和用户活动连接表。活动资​​源嵌套在用户资源下。我想允许用户一次选择多个活动,以便可以将它们作为他们喜欢的活动存储在连接表中。如何使用简单的表单进行设置?我在活动索引视图中尝试了以下变体,但一直出现错误:

<%= simple_form_for @activities do |f| %>
  <%= f.input :activities, collection: Activity.all, as: :check_boxes %>
<% end %>

【问题讨论】:

    标签: ruby-on-rails forms postgresql simple-form


    【解决方案1】:

    这应该是user 的表单(注意@user 而不是@activities),因为活动是用户模型的关系

    <%= simple_form_for @user do |f| %>
      <%= f.association :activities, as: :check_boxes %>
    <% end %>
    

    【讨论】:

    • 感谢您的帮助。但是,我现在收到以下错误:Failure/Error: click_link 'Activity List' ActionView::Template::Error: undefined method `model_name' for NilClass:Class
    • 您必须在控制器操作中初始化 @user。
    • 仍然遇到同样的错误。当我弄清楚时会报告。再次感谢。
    • 所以我不得不在表单中使用 current_user(使用 Devise),而且我的测试没有创建任何可供选择的活动,因此导致了错误。
    【解决方案2】:

    我相信这是简单形式的正确语法 (docs)

    <%= f.association :activities, as: :check_boxes, 
              collection: Activity.all %>
    

    【讨论】:

    • 感谢您的帮助。但是,我现在收到以下错误,有什么想法吗?感谢您的帮助。但是,我现在收到以下错误:Failure/Error: click_link 'Activity List' ActionView::Template::Error: undefined method `model_name' for NilClass:Class
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多