jjzjj

ruby-on-rails - 为什么 Strong Params 包含允许的 : false

我在Controller的update操作顶部放入了一个binding.pry。在该断点处,我输入params[:foo_bar]来检查params散列。这是我得到的:"✓","_method"=>"patch","authenticity_token"=>"123==","foobar"=>{"start_date"=>"08/27/2016","end_date"=>"08/29/2016","id"=>"89"},"bazz_id"=>"3","abc_id"=>"330","bazzbazz_attributes"=>{"0"=>{"_destroy"=>"1","city_i

ruby - 不需要的表单参数被附加到分页链接

我有一个页面,用于通过使用提供的表格提交数据来搜索列表。表单参数通过ajax(post请求)提交,在搜索表中创建一条新记录,然后通过show显示列表(动态地,在提交表单的同一页面上)此记录的操作。结果有kaminari提供的分页链接,如下所示:{:controller=>'searches',#Ihavetospecifytheidbecausemysearchesarestoredinthedatabase:action=>'show',:id=>search.id},:remote=>true%>请注意,分页链接是动态包含在页面中的。因此,当我进行新搜索并获得新列表时,服务器会重新

ruby-on-rails - 最佳实践 - 在 Ruby on Rails View 中传递实例变量或使用参数?

根据下面的例子,最佳实践是什么?案例一controller.rb...defindex...@group=params[:group]@team=params[:team]@org=params[:org]...endindex.html.haml=link_to@group,'#'=link_to@team,'#'=link_to@org,'#'案例2controller.rb...defindex......endindex.html.haml=link_toparams[:group],'#'=link_toparams[:team],'#'=link_toparams[:org

Ruby HTTP 获取参数

如何通过ruby​​发送带参数的HTTPGET请求?我尝试了很多例子,但都失败了。 最佳答案 我知道这篇文章很旧,但是为了那些由谷歌带到这里的人,有一种更简单的方法可以以URL安全的方式对您的参数进行编码。我不确定为什么我没有在其他地方看到这个,因为该方法记录在Net::HTTP页面上。我已经看到Arsen7描述的方法也是其他几个问题的公认答案。在Net::HTTP中提到文档是URI.encode_www_form(params):#Letssaywehaveapathandparamsthatlooklikethis:path="

ruby-on-rails - 如何从 params 哈希中删除空参数?

在我的Rails4应用程序中,我有这样的设置:classInvoicesControllerclassInvoice?",params[:minimum])ifparams[:minimum]data=data.where("total问题是我有一堆其他GET参数,它们都是params散列的一部分。如何从URL中删除空白参数,这样我就不会得到如下URL:/invoices?after=&before=&maximum=&minimum=&number=感谢您的帮助。 最佳答案 把它放在哈希后面:.reject{|_,v|v.blan

ruby-on-rails - 带有字符串输入的引用模型

假设我希望创建一个页面,该页面可以使用type(string)和id(int)查询所需的对象。/query?type=people&id=1会接我Person.find(1)鉴于/query?type=cities&id=123会接我City.find(123)但是,关于如何将字符串转换为所需的模型类,我遇到了问题。我能想到的唯一办法是caseparams[:type]when'people'@object=Person.find(params[:id])when'cities'@object=City.find(params[:id])end但是,如果我有更多类型的模型,这种方法就会

ruby-on-rails - Rails 返回 JSON 序列化属性 with_indifferent_access

我以前有:serialize:params,JSON但这会返回JSON并将哈希键符号转换为字符串。我想使用符号引用散列,这在使用散列时最常见。我给它提供符号,Rails返回字符串。为了避免这种情况,我创建了自己的getter/setter。setter很简单(JSON编码),getter是:defparamsread_attribute(:params)||JSON.parse(read_attribute(:params).to_json).with_indifferent_accessend我不能直接引用params因为那会导致循环,所以我使用read_attribute,现在我的

ruby-on-rails - 在 Ruby if 条件下使用正则表达式

我正在尝试将正则表达式用作Ruby(1.9.2)if语句中的条件,但即使正则表达式的计算结果为nil,它也会一直返回trueif(params[:test]=~/foo/)return"match"elsereturn"nomatch"end即使Rails.logger.info(params[:test])显示测试设置为"bar",上面的代码也会返回“匹配” 最佳答案 ifparams[:test]=~/foo/#Successfulmatchelse#Matchattemptfailedend适合我。调试params[:test

ruby-on-rails - 为什么对 params 哈希进行切片会对批量分配造成安全问题?

通过批量分配防止安全风险的官方方法是使用attr_accessible.然而,一些程序员认为这不是模型的工作(或者至少不是仅模型的工作)。在Controller中执行此操作的最简单方法是对params哈希进行切片:@user=User.update_attributes(params[:user].slice(:name))但是文档指出:NotethatusingHash#exceptorHash#sliceinplaceofattr_accessibletosanitizeattributeswon’tprovidesufficientprotection.这是为什么呢?为什么par

ruby-on-rails - 在 Rails 控制台中创建实例时 Rails 4 强参数失败

可能在这里做了一些愚蠢的事情,但这是我的基本千篇一律类:classLeague在创建一个新的League实例时:2.0.0-p0:001>l=League.new(full_name:'foo',short_name:'bar')WARNING:Can'tmass-assignprotectedattributesforLeague:full_name,short_name我到底做错了什么?这是Rails4.0.0.beta1构建+Ruby2.0**更新**我现在意识到强参数现在是在Controller中强制执行的,而不是在模型中。原来的问题仍然成立。如果它们在Controller级别