ruby on rails 多对多关联,如果建立和删除关系
@Silentboy 你好,想跟你请教个问题:
我通过has_and_belongs_to_many ,关联了两个多对多的关系,一个是user,一个是product,然后我现在想通过在一个显示了product.all的页面里,通过一个按钮关注某个product,给当前user和这个product建立一个关系,或者删除关系,该怎么实现呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
既然错误都指明了是未定义的方法,那就看看是哪里用了,或者哪个redirect-to 是不是指向了这么个路径,因为这个路径就不应该存在,肯定会报错,而且路由没必要用resources 一个create 一个destroy就行了,中间表控制器方法也是这两个,提交的时候指明控制器和动作,我已经讲的够清楚了
你好像还没理解这个中间表的意思,看下下面这个图:(你把assembiles当成products,把parts当成users就行了)
保存的时候就按照正常的create动作就行了,把user_id和product_id保存到中间表就行了,关注按钮是一个表单吧,你把user_id和product_id保存到:user_product中,然后在中间表的控制器的create动作接收并保存
调用的时候比如你找一个用户关注多少产品,那就
够清楚了吧!
看下:http://guides.rubyonrails.org/index.html 里面的Models
你好,非常感谢你的回答,我是新手,有些不太明白我设置了has_and_belongs_to_many的关系,还要设置has_many?还有例如我发出一个动作,我是user.product.save(user_id: , product_id: ),这样保存吗?还是不太明白如何保存关系到中间表。
这样的话你的建立一个中间关系表user_product,一个是user_id 一个是product_id ,然后分别设置has_many关联,当当前用户想关注产品的时候,点击关注出发一个动作,将user_id和product_id插入到user_product里面就OK了,如果想要实现点击不刷新关注,看一下ajax就OK了,这样说应该明白了吧。
中间表是一个表,你不能只建控制器,模型也是需要的,还有,你的命名方式不符合标准,找下contrller和models的命名规范,这里就不说了,自己动手才记得清,还有,有问题请在这说哦。
你好像还没理解这个中间表的意思,看下下面这个图:(你把assembiles当成products,把parts当成users就行了)
保存的时候就按照正常的create动作就行了,把user_id和product_id保存到中间表就行了,关注按钮是一个表单吧,你把user_id和product_id保存到:user_product中,然后在中间表的控制器的create动作接收并保存
调用的时候比如你找一个用户关注多少产品,那就
够清楚了吧!
看下:http://guides.rubyonrails.org/index.html 里面的Models