Ruby - 控制器(或模型)中的访问参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ruby - 控制器(或模型)中的访问参数相关的知识,希望对你有一定的参考价值。
我是Ruby的新手(本周)并被分配了一个应用程序来修改。我添加了一个复选框,我只是想在服务器上获取复选框值,以便我可以做一些事情。我在这个网站上找到了不少这样的例子,但似乎没有什么对我有用。我觉得我只是在做别人正在做的事情!
//View
.field-row
%label ID Check?
= f.check_box :idvalue
//Controller
logger.info "DisplayParams: #{params}"
logger.info "DisplayID: #{params[:idvalue]}"
logger.info "DisplayID Another Way: #{:idvalue}"
//Model
logger.info "MODEL-ID: #{:idvalue}"
单击复选框并提交后的development.log
[43de5....] MODEL-ID: idvalue
[43de5....] DisplayParams: "deleted_images"=>"","utf8"=>"/","year"=>"2018","country"=>"US","idvalue"=>"1"}
[43de5....] DisplayID:
[43de5....] DisplayID Another Way: idvalue
正如你所看到的......当我打印出参数时,idvalue会出现,但是当我尝试显示实际的id值时,则不会出现。我猜我在尝试获得这个价值时做错了什么?
我找到了一个params.require部分并在那里添加了我的变量
如果有人有任何想法,我很乐意听到他们。一旦我在Controller中看到这个值,我最终需要将它移到模型中。
谢谢!
看起来params对象本身可能存在一些问题,即年和=>
之间有一个错误的逗号,也就是"year",=>"2018"
应该是"year"=>"2018"
。也许这可以给你一些东西来研究?另一件事是尝试调用param名称的字符串版本而不是符号params['idvalue']
。祝好运! :d
params = {"deleted_images"=> "", "utf8"=> "/", "year"=> "2018", "country"=> "US", "idvalue"=> "1"}
params['idvalue']
#returns "1"
事实证明并不像我想象的那么简单。以下是它最终的工作方式:
def create
@vehicle = Vehicle.new(vehicle_params.merge(created_by_id: current_user.id))
logger.info "SHOW ID: #{params[:vehicle][:idvalue]}"
看起来我必须将它嵌套在@vehicle中!
谢谢大家!
以上是关于Ruby - 控制器(或模型)中的访问参数的主要内容,如果未能解决你的问题,请参考以下文章
PHP MVC 最佳实践 - 将 Session 变量从控制器传递给模型类或直接在模型中访问
如何调用参数来自 Ruby 模型的 javascript 函数?
无法访问 express js router.delete 中的参数