【问题标题】:ActiveAdmin / Formtastic Has Many Through with fieldActiveAdmin / Formtastic 有很多通过字段
【发布时间】:2013-03-28 22:10:01
【问题描述】:

我有用户和组。

Users has_many :groups, :through => Membership
Groups has_many :users, :through => Membership

到目前为止还不错。成员资格现在有一个布尔字段,manager

用户可以是群组的管理员,并且群组可以拥有多个管理员。在站点的任何地方,这都可以正常工作并且不会导致任何问题。现在他们需要以某种方式管理它。我正在使用 Active Admin (Formtastic) 并显示字段:as => :check_boxes

用户喜欢这些复选框。他们希望我在切换用户是否在组中的复选框旁边放第二个复选框,以确定用户是否是该组的经理。

我怎么可能做到这一点?我曾尝试使用f.has_many 系统,但这会为每个现有成员创建一个条目,无法删除成员,这也不是用户想要的。我想显示每个用户,显示一个复选框以确定该配对是否存在成员资格,并在其旁边显示另一个复选框以获取经理字段的值。

【问题讨论】:

    标签: ruby-on-rails ruby activeadmin has-many-through formtastic


    【解决方案1】:

    您想要的是在单击复选框时进行 AJAX 调用。假设您正在为您的 javacript 文件和 jQuery 使用咖啡脚本,以提供一般指南(未经测试),请在您的复选框上使用一个属性,如下所示:

    <checkbox data-group=<%=group.id%> data-user=<%=user.id%> data-something="true">
    

    然后,创建一个 javascript 函数来获取此数据,然后在其上放置一个调用页面的函数:

    $document.ready ->
      $(["data-something]").click ->
        user = this.attr("data-user")
        group = this.attr("data-group")
        $.post("/some/url", {value: this.value, user: user, group: group})
    

    将路由添加到这个控制器,然后从这个 url 操作,简单处理逻辑

    Class SomeController
      def url
        user = User.find(params[:user])
        ....
      end
    end
    

    如果您有更多问题,请稍后提出更具体的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      相关资源
      最近更新 更多