首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >记录的自引用关系将仅创建与其自身的关系

记录的自引用关系将仅创建与其自身的关系
EN

Stack Overflow用户
提问于 2019-05-12 16:34:46
回答 1查看 37关注 0票数 0

我正在尝试创建一种方法,通过该方法,用户可以将相关记录附加到现有记录,类似于用户可以关注其他用户的方式。但是,当调用该方法时,只能在记录和其自身之间建立关系。我将我的代码建立在关注者/关注者模型上,我认为问题的出现是因为该方法无法区分当前记录和选择要创建关系的记录。有什么想法可以解决这个问题吗?相关代码如下...

模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    class Ingref < ApplicationRecord
        has_many :active_relationships, class_name: "Ingrelationship",
                                    foreign_key: "child_id",
                                    dependent: :destroy
    has_many :passive_relationships, class_name: "Ingrelationship",
                                     foreign_key: "parent_id",
                                     dependent: :destroy
    has_many :children, through: :active_relationships, source: :parent
    has_many :parents, through: :passive_relationships, source: :child

    # Follows a user.
    def follow(other_ingref)
        children << other_ingref
    end

    # Unfollows a user.
    def unfollow(other_ingref)
        children.delete(other_ingref)
    end

    # Returns true if the current user is following the other user.
    def following?(other_ingref)
        children.include?(other_ingref)
    end

end 

关系控制器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class IngrelationshipsController < ApplicationController
    before_action :set_search

    def create
        ingref = Ingref.find(params[:parent_id])
        ingref.follow(ingref)
        redirect_to ingref
    end

    def destroy
        ingref = Ingrelationship.find(params[:id]).parent
        @ingref.unfollow(ingref)
        redirect_to ingref
    end
end

关系模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Ingrelationship < ApplicationRecord
    belongs_to :child, class_name: "Ingref"
    belongs_to :parent, class_name: "Ingref"
end

表格

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<% Ingref.find_each do |ingref| %>

        <div class="col-md-2">
              <div class="caption">
                <h3 class="title" style="font-size: 14px;"> <%= ingref.name %> </h3>
                    <%= form_for(@ingref.active_relationships.build) do |f| %>
                        <div><%= hidden_field_tag :parent_id, ingref.id %></div>
                        <%= f.submit "Follow" %>
                    <% end %>
              </div>
            </div>
          <% end %>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-14 03:11:56

我发现上面概述的问题是由于在自我引用关系中的两个记录之间的子代-父代关系中没有定义子代。通过在表单和控制器中分别添加以下行,我能够定义此变量并创建所需的关系。

表格

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<%= hidden_field_tag :child_id, @ingref.id %>

控制器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
current_ingref = Ingref.find(params[:child_id])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56101266

复制
相关文章
Angular 项目多国语言设置
有时候,我们开发了一个项目,需要走国际化。那么我们需要设置多国语言。下面,我们以 Angular 项目为例,说说怎么针对 Angular 项目来设置多国语言。React 和 Vue 项目同理~
Jimmy_is_jimmy
2023/03/14
2K0
Angular 项目多国语言设置
如何使用Angular CLI和PM2运行Angular应用程序
Angular CLI是Angular框架的命令行界面,用于在开发过程中在本地创建,构建和运行应用程序。
子润先生
2021/06/16
2.9K0
如何使用Angular CLI和PM2运行Angular应用程序
Angular CLI是Angular框架的命令行界面,用于在开发过程中在本地创建,构建和运行应用程序。
知忆
2021/06/24
2.2K0
selenium设置Chrome
关闭图片 from selenium import webdriver options = webdriver.ChromeOptions() prefs = { 'profile.default_content_setting_values': { 'images': 2 } } options.add_experimental_option('prefs', prefs) browser = webdriver.Chrome(chrome_options=options
机器学习和大数据挖掘
2019/07/02
1.4K0
如何使用A2P2V针对特定目标生成攻击序列
关于A2P2V A2P2V,全称为Automated Attack Path Planning and Validation,即自动化攻击路径计划和验证,它是一个计划工具,也是一个网络攻击工具,可以帮助广大研究人员在给特定攻击者目标的情况下确定一组排序攻击序列。该工具的目的是简化流程,以便非专业人士能够使用尽可能多地自动化实现任务,并生成易于理解的安全报告。 A2P2V使用已知的网络拓扑和系统漏洞信息来确定所有攻击序列集,以实现攻击者的目标,并为选定的序列输出所需的步骤(Metasploit命令)。 需要输
FB客服
2023/03/30
4940
如何使用A2P2V针对特定目标生成攻击序列
Chrome 菜单给 angular 的亲儿子关怀
今天在浏览angular中文官网的时候,在浏览器的 … 菜单中,多出来一个Install Angular的选项:
前Thoughtworks-杨焱
2021/12/07
4520
Chrome 菜单给 angular 的亲儿子关怀
在使用chrome调试angular2的时候出现下面问题
在console中不是打印出具体到哪个组件,而是打印出core.es5.js,这样对我的调试困难就加大了很多 如果不小心按到了chrome里的哪个调试开关的时候,自己也不清楚哪里解决好,直接重置就可以。
杭州前端工程师
2018/06/15
1.3K0
android应用程序_chrome Android
最近在看Android源码Setting代码的时候,发现其中配置都是用的PreferenceFragment,以前对这一块不是很了解,
全栈程序员站长
2022/10/04
5140
android应用程序_chrome Android
针对plsql developer使用做的三个小设置
1、原来大家在sql窗口写多条sql语句,如果点击“执行”,那么会执行窗口下的所有语句,如果向执行所要的语句,必须选定它。
williamwong
2018/07/24
1.2K0
针对plsql developer使用做的三个小设置
计算资源及编程-仅针对生信人员
第 5 章 计算资源及编程 5.1 硬件配置 理论上在个人Windows电脑上面做生物信息学数据分析是不实际的,因为太多的生物信息学相关软件的开发者对windows并不熟练,没办法提供完善的基于windows操作系统的软件。 而且个人Windows电脑配置肯定不会太高,一般的组学测序数据都是10~500G一个样本,而且很多软件运行的时候对内存要求很高,最后这些数据的分析过程会非常耗时,个人电脑在硬盘,内存,cpu方面均不足以承担这个重任。 所以一般建议使用配置比较高的服务器,而且建议给服务器安装linux系
生信技能树
2018/03/09
2.2K0
计算资源及编程-仅针对生信人员
Chrome设置断点的各种姿势
Chrome设置断点的各种姿势 最近在翻看Chrome devtools的文档,刚看到了关于断点调试这里,感觉发现了新大陆-。- 本文记录一下如何在Chrome上设置断点,以及可以设置哪些断点,并不涉及具体调试相关的操作。 在JavaScript代码中设置断点 刚工作时被leader安利了Chrome浏览器,那时一说到调试,就知道这一个操作 以为在行号上单击一下就是打断点,就是会调试了:) 当然这也是最最基本的打断点的方式了,当然了,相较于 调试全靠alert 已经高端很多了。
贾顺名
2018/04/12
16.2K1
Chrome设置断点的各种姿势
计算资源及编程-仅针对生信人员
理论上在个人Windows电脑上面做生物信息学数据分析是不实际的,因为太多的生物信息学相关软件的开发者对windows并不熟练,没办法提供完善的基于windows操作系统的软件。 而且个人Windows电脑配置肯定不会太高,一般的组学测序数据都是10~500G一个样本,而且很多软件运行的时候对内存要求很高,最后这些数据的分析过程会非常耗时,个人电脑在硬盘,内存,cpu方面均不足以承担这个重任。
生信技能树
2018/07/27
7720
计算资源及编程-仅针对生信人员
针对业务日志的监控报警设置
需求说明:对线上业务日志进行监控,当日志中出现的ERROR条数超过30条时立即报警! 监控脚本部署到qd-inf-logcollector01服务器上了(需要提前做好qd-inf-logcollector01到业务部署机器的ssh无密码信任关系) 1)qd-inf-logcollector01 机器上的操作记录: [root@qd-inf-logcollector01 ~]$ cd /app/script/ [root@qd-inf-logcollector01 script]$ ll total 37
洗尽了浮华
2018/01/23
1.8K0
仅允许特定用户组通过NetScaler访问虚拟桌面
通常情况下我们的AD环境是为企业内多个业务系统提供服务,在交付Citrix VirtualDesktop环境后,我们通常会通过Citrix ADC(原名叫NetScaler)设备作为安全代理网关进行虚拟桌面访问,默认情况下Citrix ADC与AD集成后,所有用户都允许登录,只不过未经授权的用户无法看到任何资源。
SuperDream
2020/06/03
1.2K0
Linux设置仅秘钥登录
主要是想的自己小博客也没啥机密信息,不会真有人无聊到来黑吧,不会吧不会吧,结果还真有。头晚上发现被破解了也就去改了下root密码,就不想管了,结果第二天中午异地登录了,绷不住了,估计昨晚登录了后还留了其他超级权限账号,还是得想想办法。
Diuut
2022/11/22
1.9K0
Linux设置仅秘钥登录
点击加载更多

相似问题

WordPress数据库错误命令不同步;

271

Wordpress ACF关系不同步

116

MariaDB命令不同步

17

Mysqli命令不同步

22

MySQL“命令不同步”

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文