Tag: 帮助器

是否可以从javascript中调用rails helper方法?

我的application.html.erb [查看文件]中有一个javascript代码块,它接收来自外部api的事件。 我想要做的就是当在javascript代码块中收到事件时,我需要在[application_helper.rb]中执行一个帮助方法。 我在这里经历了大部分的te栈,但找不到任何相关的答案。 javascript代码块如下所示: var pusher = new Pusher(‘b00c9657a0a896f3ec26’); var channel = pusher.subscribe(‘NewOrders’); channel.bind(‘NewOrderArrived’, function(data) { [ I NEED TO CALL THE RAILS HELPER METHOD HERE ] console.log(“got u”) });

在嵌套资源中自动添加父模型ID

使用Rails 3中的嵌套资源路由,如下所示: resources :magazines do resources :ads end 我已经定义了诸如magazine_ad_path类的助手,我必须同时传递杂志和广告,如果我只是引用了广告,这是不方便的: magazine_ad_path(@ad.magazine, @ad) 有没有一种很好的方法来设置一个ad_path帮助器,它接受@ad并返回包含杂志ID的相应地址? (这样也可以使用link_to @ad , redirect_to @ad等,它会自动调用与模型类对应的ad_path助手。)

创建一个简单的Rails 3文本助手Gem

我一直在研究我的第一个Rails 3插件,打包一个简单的帮助函数,我喜欢在我的所有应用程序的ApplicationHelper中使用它。 你可以在Github上看到整个代码。 这是我的第一次尝试: ## lib/semantic_id.rb ## require ‘semantic_id/version’ module ::ActionView::Helpers::TextHelper def semantic_id string = String.new case when controller.action_name =~ /new|edit/ string += controller.action_name + “_” when controller.action_name =~ /index|create/ string += controller.controller_name else string += controller.controller_name.singularize end string += “_view” end end 现在,这是有效的,但据我所知,这不是扩展ActiveSupport或任何其他Rails模块的’Rails 3方式’。 我还没有找到关于你如何“应该”构建Rails 3 gem的文档。 我尝试按照Rails指南进行操作,但是在那里添加帮助程序的方法不起作用,否则我错过了一些东西。 我的问题是:鉴于上面的代码作为我正在寻找的function的一个例子,你将如何把它变成一个Rails 3插件Gem? 谢谢!

为什么我的helper递归方法不返回每个值?

我想显示一个用gem祖先管理的类别树。 我想使用一个帮助器,它将递归遍历树并逐个返回类别,目前没有html标签或内容。 module CategoriesHelper def display_tree(category) if category.has_children? category.children.each do |sub_category| display_tree(sub_category) puts(sub_category.name) # to check if it goes here end end category.name end end category参数是根类别之一。 该怎么回事? 在网页中:它仅显示根级别类别Sport Beauty Automobile 在控制台: Men Indoor Women Children Water sport Garage 如果得到它们,则意味着递归有效,但事实并非如此。 为什么它只返回第一次迭代? 我也希望按以下顺序获取它们: root/child/child-of-child 但如果我想返回category.name ,它应该在最后一个位置。 你能告诉我你的意见吗? PS:我刚刚发现(在添加标签期间)我在搜索过程中一直使用“递归”这个词,但它不存在,即使很多人在stackOveflow上使用它; o) – >“递归”,但是我还是被困住了 **编辑** 现在我使用这段代码: module CategoriesHelper def display_tree(category) […]