f.send in form?

81 views
Skip to first unread message

Me

unread,
Jul 30, 2012, 6:01:42 PM7/30/12
to rubyonra...@googlegroups.com
Can you do f.send in a form?  I have questions and the data type stored in a db.

<% Question.all.each do |question| %>
          <div class="control-group">
            <%= f.send(:label, question.name), :class => 'control-label' %>
            <div class="controls">
              <%= f.send(question.data_type.to_sym, :question, :name) %> - <%= ' allergic to shellfish?' %>
            </div>
          </div>
        
        <% end %>

Dheeraj Kumar

unread,
Jul 30, 2012, 10:17:41 PM7/30/12
to rubyonra...@googlegroups.com
Of course! Are you encountering any problems with that?


Dheeraj Kumar

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonra...@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/6K79gq2KHPYJ.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Chris Habgood

unread,
Jul 30, 2012, 11:25:45 PM7/30/12
to rubyonra...@googlegroups.com
Is there something I need to do to the data_type to make it recognize it as a method?
wrong number of arguments (3 for 0)

<div class="control-group">
48:             <%= f.label question.name.to_sym, :class => 'control-label' %>
49:             <div class="controls">
50:               <%= question.data_type "person[person_question_ids][]", question.id, nil %> - <%= ' allergic to shellfish?' %>
51:             </div>
52:           </div>
--
"In matters of style, swim with the current; in matters of principle, stand like a rock." 
Thomas Jefferson

radhames brito

unread,
Jul 31, 2012, 1:58:41 AM7/31/12
to rubyonra...@googlegroups.com
You can access the object by using

f.object

then you can do 

f.object.send

here 'f.object' return an instance of Question, but i think that whatever you are trying to do you are doing it wrong, can you elaborate in what you are trying to do?

Matt Jones

unread,
Jul 31, 2012, 7:57:36 AM7/31/12
to rubyonra...@googlegroups.com


On Monday, 30 July 2012 23:25:45 UTC-4, Me wrote:
Is there something I need to do to the data_type to make it recognize it as a method?
wrong number of arguments (3 for 0)
<div class="control-group">
48:             <%= f.label question.name.to_sym, :class => 'control-label' %>
49:             <div class="controls">
50:               <%= question.data_type "person[person_question_ids][]", question.id, nil %> - <%= ' allergic to shellfish?' %>
51:             </div>
52:           </div>



Wait, what? You posted the correct code in your original post, but this isn't that code. Line 50 here is saying, "call the data_type method on the question object with these three parameters". The generated accessor doesn't understand the parameters, and you get the error.

If you want to call a method whose name is selected at runtime, you *need* to use send.

--Matt Jones

Me

unread,
Sep 28, 2012, 6:25:27 PM9/28/12
to rubyonra...@googlegroups.com
Been a while, I had the closing bracket in the wrong spot:
send needs all the params, it was erroring on , if i put the closing bracket right after the data_type or name
<%= person_question.send(question.data_type.to_sym, question.name, :class => 'text_field') %>
Reply all
Reply to author
Forward
0 new messages