Ruby on rails 未定义的方法`匹配';零级:零级

Ruby on rails 未定义的方法`匹配';零级:零级,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我试图从文本框中删除任何不在[]之间的内容。这适用于编辑记录表单: <%= f.text_field :transport_relay, :value => f.object.transport_relay.match(/\[(.*?)\]/)[1] %> 解决了错误问题,但在此过程中删除了输入文本框。您希望if仅应用于:value参数,而不是整个f.text\u字段。将()放在:value周围 <%= f.text_field :transport_relay,

我试图从文本框中删除任何不在
[]
之间的内容。这适用于
编辑
记录表单:

<%= f.text_field :transport_relay, :value => f.object.transport_relay.match(/\[(.*?)\]/)[1]  %>

解决了错误问题,但在此过程中删除了输入文本框。

您希望
if
仅应用于:value参数,而不是整个f.text\u字段。将()放在:value周围

 <%= f.text_field :transport_relay, :value => (f.object.transport_relay.match(/\[(.*?)\]/)[1]  if f.object.transport_relay) %>
(f.object.transport\u relay.match(/\[(.*?\])/)[1]如果f.object.transport\u relay)%>

您希望
if
仅应用于:value参数,而不是整个f.text\u字段。将()放在:value周围

 <%= f.text_field :transport_relay, :value => (f.object.transport_relay.match(/\[(.*?)\]/)[1]  if f.object.transport_relay) %>
(f.object.transport\u relay.match(/\[(.*?\])/)[1]如果f.object.transport\u relay)%>

你可以这样写

<%= f.text_field :transport_relay, :value => f.object.transport_relay.nil? ? nil:f.object.transport_relay.match(/\[(.*?)\]/)[1]  %>
f.object.transport\u relay.nil?nil:f.object.transport\u relay.match(/\[(.*?\])/)[1]>
但我认为,如果你将这种逻辑提取到你的模型中会更好

def transport_relay_value
  transport_relay.nil? nil:transport_relay.match(/\[(.*?)\]/)[1]
end

<%= f.text_field :transport_relay, :value => f.object.transport_relay_value  %>
def传输继电器值
交通接力,零?无:传输中继。匹配(/\[(.*?\]/)[1]
结束
f、 object.transport\u中继\u值%>

你可以这样写

<%= f.text_field :transport_relay, :value => f.object.transport_relay.nil? ? nil:f.object.transport_relay.match(/\[(.*?)\]/)[1]  %>
f.object.transport\u relay.nil?nil:f.object.transport\u relay.match(/\[(.*?\])/)[1]>
但我认为,如果你将这种逻辑提取到你的模型中会更好

def transport_relay_value
  transport_relay.nil? nil:transport_relay.match(/\[(.*?)\]/)[1]
end

<%= f.text_field :transport_relay, :value => f.object.transport_relay_value  %>
def传输继电器值
交通接力,零?无:传输中继。匹配(/\[(.*?\]/)[1]
结束
f、 object.transport\u中继\u值%>

试试这个:
def nil.match;nil end

试试这个:
def nil.match;nil end

这里有一个很好的名字叫和gem来处理这个问题(“nil:NilClass的未定义方法`any_method')。

这里有一个很好的名字叫和gem来处理这个问题(“nil:NilClass的未定义方法`any_method')。

对我来说非常有效:)。谢谢你们的投入和所花的时间。这对我来说非常有用:)。感谢大家的投入和花费的时间。