I can’t find how to display a dynamic label in Rails, i’ve tried using the :value => show_name property but it didn’t work, it only displays Show name. Here is the view code
<p>
<div class="control-group">
<%= f.label :show_name, :value => :show_name, :class => 'control-label' %>
<%= #this next line fails with undefined method `show_name' for #<ActionView::Helpers::FormBuiler>
#f.label f.send :show_name, :class => 'control-label'
%>
<div class="controls">
<%= f.text_field :variable_value, :class => 'text_field' %>
<%= f.hidden_field :variable_id, :class => 'text_field' %>
<%= f.hidden_field :show_name, :class => 'text_field' %>
</div>
</div>
<p>
and if needed here is the show_name definition inside my model.
def show_name
Variable.find_by_id(self.variable_id).name
end
Ok, so i end up finding a solution that is very
DRY, thank to this post. And the only thing im going to do is explain a lit bit more what to do:First we are going to asume the most complex case in which we have nested forms and so we are using
fields_forinside aform_formethod:Note that we included the builder object(as specified in the fields_for call) in the parameters of our helper.
In our helper we define the
return_value_of_symbolfunction