草庐IT

Action_send

全部标签

ruby-on-rails - 是否有一种优雅的单行代码可以使用 .send() 附加存储在数组中的范围?

这是我的目前,我正在这样做:current_account.send(object).search(params[:search]).user_id_equals_any(users).visibility_is_any(visibilities)但这不是很灵活吗?如果我想有条件地不拥有这些范围之一怎么办?我认为带有条件添加元素的作用域数组是一个很好的解决方案我将使用.send()调用的参数数组scopes=[]scopes=所以,我可以有一些未知的数字范围。要执行作用域,我需要调用.send(:scope_name,scope_param)但是我如何为我的scopes数组中的任意数量

ruby-on-rails - 如何将异常处理添加到我的 before_action

我有一个像这样的before_action方法:defcurrent_user@current_user||=User.find(:id=>session[:id])end然后我调用这样的方法:defget_fooduserfood=Food.find(:id=>user.id)end这很好,但我想添加异常处理。当用户为nil我想使用@current_user:defget_fooduserfood=Food.find(ifuserisniliwanttouse@current_user.id)end当然可以这样写:defget_fooduserifuser.nil?food=Food

ruby-on-rails - Rails 没有向我的 :new controller's action 发送 GET 参数

我正在尝试建立一个简单的用户和团队多对多关系,但我在将用户添加到团队时遇到了困难。这是我的模型:classUser为了简单起见,我决定不使用嵌套资源。所以这是我获取这些资源的路线:resources:usersresources:teamsresources:memberships,only:[:new,:create,:update,:destroy]在我团队的:show操作中,我在那里放了一个按钮,这样人们就可以转到一个页面来将用户添加到团队中:Integrantes请注意,我将GET参数传递给new_membership_path函数调用,因此当我到达memberships#ne

ruby-on-rails - rails : How to send emails to a recipient containing umlauts?

我想发送一封具有以下设置的电子邮件defregistration_confirmation(user)recipientsuser.username+""from"NetzwerkMuensterland"subject"VielenDankfürIhreRegistrierung"body:user=>usercontent_type"text/html"end主题行包含变音符号并且工作正常。日志告诉我,它是这样编码的:=?utf-8?Q?Vielen_Dank_f=C3=BCr_Ihre_Registrierung?=但是,如果user.username包含变音符号,则电子邮件将不

ruby - 范围解析运算符的 "send"等价物是什么?

classPersonDEFAULT_MALE_NAME="Joe"DEFAULT_FEMALE_NAME="Jane"defgive_default_nameself.name=self.class.send("DEFAULT_#{gender.upcase}_NAME")endend这不起作用,因为“self.class.send”最终调用了User.DEFAULT_MALE_NAME,而我希望它调用User::DEFAULT_MALE_NAME。“::”的“发送”等价于什么? 最佳答案 const_get,但您应该将常量名称作

ruby-on-rails - 将 Rails 路线限制为 Action

假设我有一个UsersController,其中包含一个操作#new。在我的路线文件中,我映射了以下内容:match'signup',to:'users#new'现在/signup和/users/new都可以访问此操作。如何将其限制为仅自定义路由。如果有人回答了这个问题,我深表歉意,但我是新手。我已经搜索过,但没有找到答案。可能是因为我不知道如何简洁地表达这一点。 最佳答案 您可以从用户资源中免除new路由,并将其替换为您的自定义路由:resources:users,except:[:new]get'signup',to:'user

ruby - Chef Recipe lwrp,使用 new_resource.updated_by_last_action(true) 的最简单方法

我正在为10号Chef编写LWRP。当该资源在其他配方中运行时,如果某些内容已更改,则应将其标记为“updated_by_last_action”。但如果一切都没有改变。updated_by_last_action应该是假的。例如,我有Chef文档http://docs.opscode.com/lwrp_custom_provider.html#updated-by-last-action.该示例将资源模板包装在一个变量中以测试它是否已更改,然后设置updated_by_last_action状态。所以我的代码应该是这样的f=filenew_resource.filenamedoxxx

ruby - Nokogiri::XML::Builder:需要使用字符串 "send"作为元素名称

我正在编写一个应用程序来生成XML文件作为SipP的输入。SipP经常使用的一个标签是“发送”问题是,当我使用nokogiri为我构建xml时builder=Nokogiri::XML::Builder.newdo|xml|xml.send"SomeContent"end我明白了当我这样做时会发生同样的情况:builder=Nokogiri::XML::Builder.newdo|xml|xml.send(:'send',"SomeContent")end我不能用大写字母拼写“SEND”,因为SipP不会那样理解。有什么想法可以强制nokogiri创建一个名为“send”的元素吗?谢谢

css - ruby 命令行 : How can I send the CTRL-C command via text in the command line?

我正在尝试创建一个简单的Automatordroplet,它将把style.less文件放入其中并在其上运行以下LESS命令:$LESSC{DROPPED_FILE}--watch它将监视我放入的文件的任何更改,然后自动更新输出的style.css仅供引用:我正在使用LESS来动态编写CSS文件。更多信息是here.基本的Droplet效果很好。拖放的文件被传递到一个变量中;为此:{MY_VAR}。我在/usr/bin/rubyshell中运行一个shell脚本如下system("lessc{MY_VAR}--watch&")这很好用,但是我希望--watch在退出automator应

ruby-on-rails - 如何在 Capybara 中获取表单的 Action ?

如何在capybara中获取表单的Action?我知道这不是正确的BDD,但表单正在访问应用程序外部的API。检查表单是否已提交可以使用Webmock完成,但在这种情况下,我认为确保正确设置操作URL更简单。 最佳答案 我很确定capybara(至少是2.1.0版)有帮助程序可以使这更容易。在我们的规范中,我们检查这样的表单操作:form_action=find('#form_id')['action']因此您不需要获取Nokogiri原生元素。 关于ruby-on-rails-如何在C