Использование наблюдаемого поля в поле внутри fields_for - PullRequest
0 голосов
/ 07 декабря 2011

Я пытаюсь наблюдать поле, которое генерируется внутри цикла fields_for.

Дело в том, что идентификатор этого поля генерируется динамически.

_form.html.erb

<% form_for @exp, :url => {:action => "update"} do |f| %>
    <% f.fields_for:patterns do |builder| %>
    <%= render 'pattern_fields', :f => builder %>
    <% end %>
<% end %>

_pattern_fields.html.erb

Pattern: <%= f.select(:LC_PATTERN, [['stripes', 'stripes'],
                                  ['dots', 'dots'],
                                  ['lines', 'lines'],
                                 ],{ :prompt => "Please select"}
                                 ) %>

<%= observe_field("------", :frequency => 1,
:with => "'id='+value", :function => 'alert(value)')%>

У меня вопрос, как мне получить идентификатор поля внутри тега fields_for.

1 Ответ

0 голосов
/ 07 декабря 2011

Я наконец получил это. Нашел это решение в интернете ... Надеюсь, оно может кому-то помочь.

В вашем application_helper.rb добавьте следующие функции:

def sanitized_object_name(object_name)
  object_name.gsub(/\]\[|[^-a-zA-Z0-9:.]/,"_").sub(/_$/,"")
end

def sanitized_method_name(method_name)
  method_name.sub(/\?$/, "")
end

def form_tag_id(object_name, method_name)
  "#{sanitized_object_name(object_name.to_s)}_#{sanitized_method_name(method_name.to_s)}"
end

Затем вы можете просмотреть идентификатор полей, созданных внутри 'fields_for', используя следующий код:

<%=form_tag_id(f.object_name, :LC_PATTERN) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...