首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Ruby on Rails中为非类变量实现类似于public_send的东西?

在Ruby on Rails中,可以通过使用send方法来实现类似于public_send的功能,该方法可以调用对象的公共方法,包括非类变量。

send方法的语法如下:

代码语言:txt
复制
object.send(method_name, *arguments)

其中,object是要调用方法的对象,method_name是要调用的方法名,arguments是传递给方法的参数。

下面是一个示例代码,演示如何在Ruby on Rails中使用send方法来调用非类变量的方法:

代码语言:txt
复制
class ExampleController < ApplicationController
  def index
    method_name = params[:method_name] # 从请求参数中获取方法名
    arguments = params[:arguments] # 从请求参数中获取参数

    # 调用非类变量的方法
    result = send(method_name, *arguments)

    render json: { result: result }
  end

  def hello(name)
    "Hello, #{name}!"
  end
end

在上述示例中,index方法接收请求参数中的method_namearguments,然后使用send方法调用对应的非类变量方法,并将结果返回给客户端。

这种方式可以实现动态调用非类变量的方法,灵活性较高。但需要注意安全性,确保只调用可信的方法,避免潜在的安全风险。

推荐的腾讯云相关产品:腾讯云服务器(CVM)和腾讯云函数(SCF)。

  • 腾讯云服务器(CVM):提供可扩展的云服务器实例,适用于各种规模的应用程序和工作负载。了解更多信息,请访问腾讯云服务器(CVM)
  • 腾讯云函数(SCF):无服务器计算服务,可帮助您构建和运行无需管理服务器的应用程序。了解更多信息,请访问腾讯云函数(SCF)
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

RadRails1.0降临——增加Profiler、CallGraph Analyzer和Rails Shell等新特性

作为一直以来流行Rails开发工具,新版本RadRailsRubyRuby on Rails开发者都新增了有用特性。...Christopher解释了这是如何实现: 此Profiler是ruby-prof gem一个简单包装。...我们将从ruby-profbin脚本得到ruby脚本执行包装起来,并将输出定向到一个临时文件。然后,当执行结束 时候,我们通过解析输出并生成调用图表和着重点以供查看。... 果要实现这个功能:我们就得修改ruby-prof gem使得它类似于ruby-debugruby-debug-ide gem那样工作——至少可以允许对于profiler远程连接和实时地通过套接字来发送剖析相关命令...,并说“嘿呀,我 现在能用RubyIDE写脚本了!”。

1.9K80

何在CentOS 6.5上使用 Nginx+Passenger 部署Railes应用程序

介绍 对于某个计算机编程领域新手来说,挑战永远不会结束。本文主题是Rails,以及如何在线获取基于Ruby On Rail Web应用程序 - 这是最简单,最快捷方式。...请记住: “处理”连接在技术上意味着不要丢弃它们并能够用某些东西为它们提供服务。您仍然需要您应用程序和数据库正常运行才能让Nginx客户端提供非错误消息响应。...准备部署服务器 在本节,我们将执行以下四个步骤以获得稳健服务器,随时应用程序提供服务。...注意:本节是我们专门文章如何在CentOS 6.5上安装Ruby 2.1.0摘要。...腾讯云将负责绝大部分处理复杂而耗时管理工作, PostgreSQL 软件安装、存储管理、高可用复制、以及灾难恢复而进行数据备份,让您更专注于业务程序开发。

4.9K20

如何部署Mina:入门教程

生活在没有Rails世界:Mina可以做到以上所有,甚至更多,并且对Rails没有任何严重依赖。使用Mina,您几乎可以部署所有内容。...Minadeploy.rb脚本实际上是带有一堆分组任务RAKE文件。一切都是用Ruby编写,而不需要处理其他类型配置,您可以不需要熟悉任何你再也不会使用东西。...Rake这种结构可以称为特定于域语言,用Ruby编写,从而在边界内以某种方式定义和设置所有内容。 它被称为构建工具,因为如前面所述,它操作通常与构造某些东西(例如库,应用程序等)有关。...在官方CentOS存储库找不到一些方便库和软件包(例如libyaml-devel,nginx等)。 简化操作而不处理手动安装,我们将为YUM包管理器添加EPEL软件存储库以供使用。...应用程序 关于Rails应用程序部署示例,请参考:“如何在CentOS 6.5上使用Unicorn和Nginx部署Rails应用程序”。

4.4K40

何在Ubuntu 18.04上使用rbenv安装Ruby on Rails

rbenv支持指定特定于应用程序Ruby版本,允许您每个用户更改全局Ruby,并允许您使用环境变量来覆盖Ruby版本。 本教程将引导您通过rbenv完成RubyRails安装过程。...安装完成后,使用global子命令将其设置我们默认版本Ruby : rbenv global 2.5.1 通过检查其版本号来验证Ruby是否已正确安装: ruby -v 如果你安装了2.5.1版本...具有不同版本号命令,rbenv install 2.3.0和rbenv global 2.3.0。...您可以使用home参数查看gems安装位置,如下所示: gem env home 您将看到类似于输出: /home/sammy/.rbenv/versions/2.5.1/lib/ruby/gems...每当你安装新版本Ruby或提供命令gem(Rails)时,你应该运行: rbenv rehash 使用以下命令打印其版本,验证是否已正确安装Railsrails -v 如果安装正确,您将看到已安装

6.2K50

Google 是如何设计 Ruby Serverless Runtime

一种实现 Ruby Serverless 化方式 Serverless 产品提供 Ruby 支持比您预期要复杂得多。...同样,我们可以使用更传统习惯用法, Ruby 全局变量,甚至构造函数和实例变量,将信息从启动代码传递给函数调用方。然而,这些语法可能传递了错误东西。...流行框架, Rails,承认了这一点,并通过提供测试工具和脚手架作为框架一部分来鼓励主动测试,Google Cloud Functions Ruby 运行时也遵循了这一点, Serverless...在 serverless 世界,您代码可能会快速连续地更新、部署和拆除许多次,因此消除瓶颈(解析和安装依赖项)是至关重要。因为我们依赖项管理标准化了一个系统,所以我们能够主动地缓存依赖项。...但在所有情况下,设计运行时经验提醒我,我们处在一个不断变化行业。Serverless 只是一系列变化最新一个,这些变化包括公共云,甚至包括 RailsRuby 本身。

2.2K60

如何使用RVM在FreeBSD 10.1上安装Ruby on Rails

本教程将介绍如何在FreeBSD 10.1服务器上使用RVM设置Ruby on Rails开发环境。 课程准备 在开始之前,您只需要: 一个FreeBSD 10.1 腾讯CVM。...步骤1 - 将bash设置默认Shell 本教程将使用Ruby Version Manager或简称RVM来安装Ruby。...由于RVM在bash 3.2.25或更高版本效果最佳,因此在此步骤,我们将安装bash并将其设置默认shell。 在开始之前,请登录FreeBSD 10.1服务器。...50295) [x86_64-freebsd10.1] 第4步 - 安装Ruby on Rails 在这一步,我们将安装Ruby on Rails。...exit 结论 在本教程,您学习了如何在FreeBSD 10.1服务器上设置Ruby on Rails。您现在可以使用FreeBSD服务器作为Rails项目的开发环境!

4.5K10

Python 和 Ruby 对比

qt、gtk、tk、SDL、FOX等,ruby计划实现SWIG接口。  都有完善文档。    2、和python相比ruby优点:    具有正则表达式和嵌入html功能。...ruby本身也实现和很多unix工具,racc,doctools。比python更亲近Linux。  比python功能更完整面向对象语法。  ruby整个库都是具有类继承结构。 ...所以,入门难度这个东西,每个人还是自己去试试好,不必听别人怎么说。   提到ROR生成目录有很多东西,要很久才可以都了解,这确实是IDE综合症。...Python入门不容易,复杂时候也不会太痛苦。rails有入门简单,深入难问题。rails生成目录是做什么用途?o/r mapping如何实现?如何把数据从web传递到数据库。...这里有些强制规定书写要求 (例如:class名字以大写字母开头, 变量名已小写字母开头)。这里只有一种容器(Array), 并且是可以改变。引号String限制不同。

1.3K20

用selenium自动化验收测试

Rails 目标是使现实应用程序编写起来需要代码更少,并且比 J2EE 和 XML 之类语言更容易。所有层都能够无缝地一起工作,因此可以使用一种语言编写从模板到控制流乃至业务逻辑各种东西。...回页首 现实需求 在接下来两节(现实需求 和 现实用例),我将描述如何在现实场景中使用 Selenium,并针对用 Ruby on Rails 和一点儿 Ajax 技术编写一个简单股票报价查看器应用程序编写...在 Ruby on Rails 应用程序,这个文件夹名称是 public。...然后转入应用程序被解压到那个目录。为了启动应用程序,运行 ruby script/server。应该看到 Rails 成功启动了, 图 1 所示。 图 1....从命令提示符下运行 Ruby on Rails 回页首 现实用例 在本节,我将列出示例应用程序用例。

6.1K30

在CVM上使用rbenv安装RoR

rbenv支持指定任意版本Ruby,允许您用户更改全局Ruby,并允许您使用环境变量来覆盖Ruby版本。 准备 本教程将引导您完成RubyRails安装过程。...Installed ruby-2.3.3 to /home/sammy/.rbenv/versions/2.3.3 现在使用global子命令将我们刚安装版本设置我们默认版本: rbenv global...然后我们可以安装特定版本,4.2.7: gem search '^rails$' --all gem install rails -v 4.2.7 rbenv工作原理是创建一个shims目录,它指向当前启用...通过rehash子命令,rbenv在该目录维护填充程序,以匹配服务器上每个已安装Ruby版本每个命令。...卸载Ruby版本 当您下载更多版本Ruby时,~/.rbenv/versions目录可能会有很多残留文件。 使用ruby-build插件子命令自动执行删除。

3.7K80

职场生存指南:颇具前景五大编程语言

这些实现方式都能够通过使用不同模块,与其他语言进行交互。而这些模块大多数都是由开源社区免费用户开发。 Python优点 Python语言不同功能可以组合并开发出各种应用。...Ruby on Rails 这是一种解释性高级通用编程语言。作为一种动态类型语言,Ruby不但可用于收集垃圾,而且能够支持多种编程范例,其中包括:各种程序、面向对象函数等。...而作为开发工具RailsWeb开发人员提供了编写代码框架和结构,有助于各种网站和应用构建。...另外,Ruby关键原则在于“约定优于配置(Convention over configuration)”。 Ruby on Rails在开发方面具有如下优势: 比其他框架和语言执行速度更快。...类似于一种过滤器,PHP能够从文本获取各种输入,然后将其转换为常见HTML类型输出流。 ? 通常,开发人员根据如下特点来选用PHP: 支持数据库管理系统,且开源。

1.1K30

何在Ubuntu 14.04上使用MySQL和Ruby on Rails应用程序

如果您应用程序需要客户端/服务器SQL数据库(PostgreSQL或MySQL)可伸缩性,集中化和控制(或任何其他功能),则需要执行一些额外步骤才能启动并运行它。...本教程将向您展示如何在Ubuntu 14.04服务器上设置开发Ruby on Rails环境,以允许您应用程序使用MySQL数据库。首先,我们将介绍如何安装MySQL和MySQL适配器gem。...创建新Rails应用程序 在主目录创建一个新Rails应用程序。...使用该-d mysql选项将MySQL设置数据库,并确保将突出显示单词替换为您应用程序名称: cd ~ rails new appname -d mysql 然后进入应用程序目录: cd appname...IP地址在Web浏览器访问您Rails应用程序: http://server_public_IP:3000 如果您看到“欢迎登陆”Ruby on Rails页面,您应用程序已正确配置,并连接到MySQL

4.8K00

何在Ubuntu 14.04上使用Puma和Nginx部署Rails应用程序

介绍 当您准备部署Ruby on Rails应用程序时,需要考虑许多有效设置。...Puma是一个应用服务器,Passenger或Unicorn,它使您Rails应用程序能够同时处理请求。...准备 本教程假定您将在部署应用程序用户上安装了安装了以下软件Ubuntu 14.04服务器: 使用rbenv安装Ruby on Rails PostgreSQL与Rails 我们假设您用户名为deploy...随意替换突出显示“appname”与其他东西rails new appname -d postgresql 然后切换到应用程序目录: cd appname 我们花一点时间来创建将由Rails应用程序生产环境使用...将生产密码和机密保存在应用程序代码库之外被认为是最佳实践,因为如果您使用是分布式版本控制系统(Git),它们很容易暴露出来。接下来我们将讨论如何使用环境变量设置数据库身份验证。 保存并退出。

5.3K10

何在Ubuntu上使用Passenger安装Rails和nginx

介绍 Ruby on RailsWeb开发人员提供了一个快速创建各种Web应用程序框架,而nginx是一个轻量级高性能Web服务器软件。...在这个例子,我们将运行nginx安装。 安装Ruby on Rails后,继续安装passenger。...完成后,它将告诉您有关对nginx配置文件所做更改以及如何在虚拟服务器上部署Ruby on Rails应用程序。 最后一步是启动nginx,因为它不会自动执行。...第八步,将Nginx连接到您Rails项目 安装rails后,打开nginx配置文件 sudo nano /opt/nginx/conf/nginx.conf 将root设置rails项目的公共目录.../public; } 创建新rails项目,请按照下列步骤操作: 如果您还没有安装NodeJs: $ sudo apt-get install nodejs 在首选目录创建新rails应用程序:

3.5K40

java与ruby直观比较

n = “hello world”// 编译时报错 静态类型与动态类型选择,实际是可靠性与灵活性选择,静态类型在编译时确保了类型安全,增强了软件可靠性,但同时失去了灵活性,一个变量只能赋值某种类型...实现同样一个输出功能,ruby代码行数小于java,也许,正是出于简洁性考虑,java8出了lambda表达式。...: 共1行 2、ruby代码块 本质:高阶函数一种特殊形式,类似于java匿名内部类 特点:1、使用时定义 2、可引用外部局部变量(闭包) java:使用偏重匿名内部类,不通用 Execute(...: def repair(c) end 5、rubyAop与Ioc AOP和依赖注入在ruby是小菜一碟,但在java程序员而言,却要学习新编程模型,处理XML,引进复杂语法。...,主要是依赖注入,java需要 Ioc service Provider专门管理,方便自动化测试 在ruby,依赖注入是不必要,它很容易修改运行定义,你不需要在应用添加新一层复杂性,就可以注入新行为

1.4K50

何在Ubuntu 14.04上使用Unicorn和Nginx部署Rails应用程序

介绍 当您准备部署Ruby on Rails应用程序时,需要考虑许多有效设置。...本教程将帮助您部署RubyRails应用程序生产环境,使用PostgreSQL作为数据库,在Ubuntu 14.04上使用Unicorn和Nginx。...随意替换突出显示“appname”与其他东西rails new appname -d postgresql 然后切换到应用程序目录: cd appname 我们花一点时间来创建将会在Rails应用程序生产环境使用...将生产密码和机密保存在应用程序代码库之外被认为是最佳实践,因为如果您使用是分布式版本控制系统(Git)时,它们会很容易被暴露出来。接下来我们将讨论如何使用环境变量设置数据库身份验证。...您可以通过运行以下命令查看使用rbenv-vars插件应用程序设置环境变量: rbenv vars 如果您更改了密码或数据库密码,请更新您.rbenv-vars文件。

4.2K00
领券