在自定义帮助程序中获取特定输入值

时间:2014-05-29 10:12:58

标签: ruby-on-rails formtastic

我创建了帮助程序,以我想要的方式打印输入,目前方法如下:

  def code_input(builder, method, is_disabled)

    builder.input method.to_sym, as: :string, label: t("activerecord.attributes.#{builder.object_name}.#{method}"),
                  input_html: { class: 'input-medium', value: is_disabled ? '*****' : builder.object.method, disabled: is_disabled }
  end

我遇到的问题是is_disabledfalse时的输入值。 Rails打印出这样的错误:

wrong number of arguments(0 for 1)

使用方式如下:

= code_input(f, :random_code, @code.locked)

但是,如果我将直接在表单中执行此操作,而不是通过这样的帮助:f.object.random_code我得到正确的值而没有错误...你能解释一下我做错了什么我正在使用formtastic和Rails 3.

1 个答案:

答案 0 :(得分:0)

我设法实现了我想要的目标:

builder.input method.to_sym, as: :string, label: t("activerecord.attributes.#{builder.object_name}.#{method}"),
              input_html: { class: 'input-medium', value: is_disabled ? '*****' : builder.object.attributes["#{method}"], disabled: is_disabled }