Tag: 助手

如何在rails 3控制器生成器中使用`–helper`标志?

rails generate controller的文档说: [–helper] # Indicates when to generate helper # Default: true 现在,它没有指定如何指示值。 因此,由于默认值为true,这意味着排除它不会指示false,因为… true是默认值。 所以它必须是–helper=false或–helper false ,但我尝试了两者,并且它们都导致error false [not found] 好消息是它没有生成帮助器,因为它很混乱,所以我仍然得到了我想要的结果:)

AssetTagHelper :: image_path外部视图

据推测, ActionController::Base.helpers就像一个代理,用于访问视图外的助手。 然而,那里定义的许多方法依赖于控制器变量,我无法成功调用: ActionController::Base.helpers.image_path(“my_image.png”) >> TypeError Exception: can’t convert nil into String 在源头挖掘我看到compute_asset_host方法试图访问config.asset_host但是config为nil 。 如何从外部视图成功调用image_path ?

动态rails助手(例如link_to方法,方法)

我想知道如何为我的rails助手获得一些动态能力: 在这种情况下,将对象的类扔到链接中。 我对如何在辅助方法中抛出方法感到困惑。 任何建议将不胜感激!

Devise – Omniauth – 如果用户通过Facebook登录,则隐藏密码字段

使用Devise与Omniauth我成功地允许用户使用他们的Facebook帐户登录。 在Omniauth wiki的帮助下,我还可以禁用在编辑帐户时输入密码。 我遇到的当前问题是如果他们通过Facebook registrations#edit ,则在我的registrations#edit视图中隐藏密码字段。 作为两个gem的新手我还在努力调整。 因此,在设置必要的辅助方法时,我有点不知所措。 根据维基的指示,这是我的注册控制器的样子: class RegistrationsController true redirect_to after_update_path_for(@user) else render “edit” end end private # check if we need password to update user data # ie if password or email was changed # extend this as needed def needs_password?(user, params) user.email != params[:user][:email] || params[:user][:password].present? || params[:user][:password_confirmation].present? end protected […]

Ruby on Rails:在视图中使用帮助程序初始化实例变量

我遇到了某种类型的范围问题,它阻止实例变量被视图调用的助手正确初始化。 #sample_controller.rb class SampleController < ApplicationController def test end end #application_controller.rb helper_method :display def display if not defined? @display return @display = "a" else return @display += "a" end end #test.html.erb 当显示样品/测试时,它会在“评估nil.reverse”时出现错误。 这是令人惊讶的,因为显示的前两个调用应该初始化@display我会想到。 如果删除,则输出为“a aa”,表示辅助方法正在设置@display实例变量,但视图中无法访问它。 如果控制器被修改成为(使用原始视图代码): class SampleController < ApplicationController def test display end end 输出变成“aa aaa aa”。 如果我在控制器中进行2次调用,我会得到“aaa aaaa aa aa”。 因此,似乎只有控制器中的调用才会修改SampleController实例变量,而视图中的调用将修改视图无法访问的ApplicationController的实例变量。 这是Rails中的错误还是我的误解,这是出于某种原因预期的function? 我遇到这个bug的上下文是试图创建一个logged_in? […]

如何从模型中为html标记生成唯一的dom id

我有一个索引视图,其中有多行用于具有多个属性的项目。 我想用ajax更新items属性的内容,因此我需要一个唯一的dom id。 有辅助方法吗? 我现在正在做的是: <span id="”> 最好,菲尔

更改默认Rails text_area帮助程序行/列

我发现自己在所有text_area表单助手上都指定了:rows => 5,所以我查找了它的定义并发现DEFAULT_TEXT_AREA_OPTIONS是指示这些选项的哈希值。 但是,散列有这个冻结方法,我查了一下,这意味着它无法更改。 如果您可以向我推荐一些选项来尝试在应用程序范围内执行:所有文本区域的rows => 5,我真的很感激。 谢谢

Rails – 在select中禁用选项(根据条件)

我选择了: = f.select(:category_id, @categories, :html_options => {:class => ‘select_box’}, {:disabled => true if category.id == 18}) 上面的代码显然会返回错误,但是如何根据id禁用选项?

如何测试作为helper_method公开的Rails控制器方法?

它们似乎无法从ActionView :: TestCase访问

Rails应用程序中控制器的Body类

目前我的布局中有这个: <body class="”> 我想添加一个额外的类,对于设置它的任何控制器中的所有操作都是相同的,类似于: class SomeController < ApplicationController body_class 'page' … end class AnotherController < ApplicationController body_class 'page' … end 这将导致: 实现这一目标最简单的方法是什么? 我可以使用控制器类变量吗?