Ruby on rails 在RubyonRails中,如何从一个用户向另一个用户提供追索权?

Ruby on rails 在RubyonRails中,如何从一个用户向另一个用户提供追索权?,ruby-on-rails,ruby,routes,Ruby On Rails,Ruby,Routes,为了使这一点易于理解,我使用了一个简化的版本来理解我试图实现的目标 这个平台有10本书(1、2、3、4、5、6、7、8、9、10) 该平台有2个用户(用户A和用户B) 用户可以拥有无限的书籍,甚至可以复制一次。例如,用户A将拥有3、4本书 用户不能自行购买或获取书籍! 用户可以向其他人赠送书籍,每人最多5本 所以用户A给用户B 5本书,这就是应该发生的事情,但是怎么做呢 这就是我目前所得到的。 用户模型: class User < ActiveRecord::Base has_many

为了使这一点易于理解,我使用了一个简化的版本来理解我试图实现的目标

这个平台有10本书(1、2、3、4、5、6、7、8、9、10)

该平台有2个用户(用户A和用户B)

用户可以拥有无限的书籍,甚至可以复制一次。例如,用户A将拥有3、4本书

用户不能自行购买或获取书籍! 用户可以向其他人赠送书籍,每人最多5本

所以用户A给用户B 5本书,这就是应该发生的事情,但是怎么做呢

这就是我目前所得到的。

用户模型:

class User < ActiveRecord::Base
  has_many :books, through: :user_books
  has_many :user_books
路线:

  resources :users, only: [:index, :show, :edit, :update] do
    member { post 'add_book'}
  end
用户控制器:

def add_book
  @user = User.find(params[:id])
  @book = Book.find(params[:id])
  @user.update_attribute(book_ids << @book.id)
end
def添加书
@user=user.find(参数[:id])
@book=book.find(参数[:id])

@user.update\u属性(book_-id这真的很奇怪。你能检查一下以下内容在路由中是否对你有效吗?“users/:id/add_-book”=>“users#add_-book”也可以,也许可以删除。book就可以了-add_-book_-user_-path助手应该用book的id作为url参数生成url嘿,谢谢你的回复,第一条路由似乎不起作用,我该怎么办ut进入add_book_user_path.helper.rb?嘿,改变post进入路由将使我找到正确的方法,但我得到了这个错误。未定义的局部变量或方法'book_id'for#你的意思是吗?德行url德行url@user的定义正确吗?你不应该创建自己的助手。只需使用rails默认值。你可以从这里了解更多信息这真的很奇怪。你能检查一下以下内容在路由中是否对你有效吗?发布'users/:id/add_book'=>'users#add_book'也可以,也许删除.book就可以了-add_book_user_path助手应该生成带有book的id作为url参数的url嘿,谢谢回复,第一条路由似乎不起作用,我应该在广告中添加什么d_book_user_path.helper.rb?嘿,更改post以进入路由将使我找到正确的方法,但我得到了这个错误。未定义的局部变量或方法'book_id'for#你的意思是吗?德行url德行url@user的定义正确吗?你不应该创建自己的助手。只需使用rails默认值。你可以从这里了解更多
  %h2 Add Books
  .field.item
    - Book.all.each do |book|
      =link_to add_book_user_path(@user, book) do
        .book
          = book.title
  resources :users, only: [:index, :show, :edit, :update] do
    member { post 'add_book'}
  end
def add_book
  @user = User.find(params[:id])
  @book = Book.find(params[:id])
  @user.update_attribute(book_ids << @book.id)
end