Ruby on rails 如何使用按钮在rails中发布?
因此,每次单击“购买”按钮时,我都试图创建一个新的“交易”,但似乎不起作用。我得到了错误“nil:NilClass的未定义方法”[] 你知道为什么会这样吗Ruby on rails 如何使用按钮在rails中发布?,ruby-on-rails,post,button,controller,Ruby On Rails,Post,Button,Controller,因此,每次单击“购买”按钮时,我都试图创建一个新的“交易”,但似乎不起作用。我得到了错误“nil:NilClass的未定义方法”[] 你知道为什么会这样吗 谢谢 有几种方法可以调试: 查看控制台日志,查看在params散列中发布的内容 在create语句的顶部添加puts语句,以查看params变量中的内容,例如 控制器 def create puts params.inspect end 我怀疑您会发现params散列没有事务键,create方法应该是 def create @my_
谢谢 有几种方法可以调试:
def create
puts params.inspect
end
我怀疑您会发现params散列没有事务
键,create方法应该是
def create
@my_transaction = Transaction.new(
buyer_id: params[:buyer_id],
seller_id: params[:seller_id],
comic_id: params[:comic_id]
)
end
有两种方法可以调试此功能:
def create
puts params.inspect
end
我怀疑您会发现params散列没有事务
键,create方法应该是
def create
@my_transaction = Transaction.new(
buyer_id: params[:buyer_id],
seller_id: params[:seller_id],
comic_id: params[:comic_id]
)
end
params[:transaction]
为零,您可以在日志中看到发送的参数(tail-f log/development.log
,如果服务器不记录)。在您的情况下,您可以访问所需的数据,如params[:comic_id]
以下是一些提示:
永远不要相信来自客户端的输入:
:买家id=>当前用户.id
在这里,攻击者可以发送任何id,因为按钮将创建一个html表单,可以使用devtool轻松访问该表单。而是在服务器端检查它。卖家id也是如此,您只需获取相关的漫画comic=comic.find参数[:comic\u id]
您可能想考虑另一种API方法,例如“代码> POST /漫画/ 1 /Buy < /代码>,这是一个更安静的地方,您可以使用内置的路径帮助器来处理这个URL,比如“代码> BuySuxCICIXPATH(COMIC)
> P> <代码> PARAM[[事务] 为NIL,您可以在日志中看到所发送的参数。(tail-f log/development.log
如果服务器没有登录)。在您的情况下,您可以访问所需的数据,如params[:comic_id]
以下是一些提示:
永远不要相信来自客户端的输入:
:buyer\u id=>current\u user.id
在这里,攻击者可以发送任何id,因为按钮\u to
助手将创建一个html表单,可以使用devtool轻松访问该表单。而不是在服务器端进行检查。卖家id也是如此,您只需获取相关的comiccomic=comic.find参数[:comic\u id]
你可能想考虑另一种API方法,比如“代码>邮政/漫画/ 1 /购买/代码>这是一个更安静的地方,你可以使用内置的路径帮助器来处理这个URL,比如“代码> BuythCoucIpPATH(COMIC)
谢谢!就是这样!拼命工作:谢谢!正是这样!工作得很有魅力:)