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 - 控制器(或模型)中的访问参数的主要内容,如果未能解决你的问题,请参考以下文章

ruby 我感兴趣的库中的代码片段

PHP MVC 最佳实践 - 将 Session 变量从控制器传递给模型类或直接在模型中访问

如何调用参数来自 Ruby 模型的 javascript 函数?

无法访问 express js router.delete 中的参数

在创建控制器和模型之后(仅)创建 Ruby on Rails 视图

清除 ASP.net 中的按钮名称参数