Hello All,
I have :wsc_uid=>category[‘wsc_uid_pk’] in my view so that I can use
:wsc_uid parameter in my controller to pass to model. In my view I am
printing category[‘wsc_uid_pk’] to see if there is data, and there is
indeed data. So, why, when running debugger in controller, is
params[:wsc_uid] = nil? Does anyone know what I could be doing wrong?
Thank you,
Rachel S Nichol
Oracle Developer
Hargray Telephone Company
On Thu, Jun 18, 2009 at 3:17 PM, Rachel
Nichol[email protected] wrote:
Thank you,
Rachel S Nichol
Oracle Developer
Hargray Telephone Company
Where is :wsc_uid=>category[‘wsc_uid_pk’] in your view
Give us some more context and it may be easier to help
Regards
Andrew T.
http://ramblingsonrails.com
http://MyMvelope.com - The SIMPLE way to manage your savings
2009/6/18 Rachel N. [email protected]:
Hello All,
I have :wsc_uid=>category[‘wsc_uid_pk’] in my view so that I can use
:wsc_uid parameter in my controller to pass to model. In my view I am
printing category[‘wsc_uid_pk’] to see if there is data, and there is indeed
data. So, why, when running debugger in controller, is params[:wsc_uid] =
nil? Does anyone know what I could be doing wrong?
To get a parameter submitted it should be put in a field (hidden if
necessary) on the form. Assuming you are submitting a form that is.
Alternatively if going via a link it can be put as a parameter to the
link. You need to give us a few more clues as to what you are doing.
We are not telepathic (at least I am not).
Colin
On Jun 18, 2:17 pm, “Rachel N.” [email protected]
wrote:
Hello All,
I have :wsc_uid=>category[‘wsc_uid_pk’] in my view so that I can use
:wsc_uid parameter in my controller to pass to model. In my view I am
printing category[‘wsc_uid_pk’] to see if there is data, and there is
indeed data. So, why, when running debugger in controller, is
params[:wsc_uid] = nil? Does anyone know what I could be doing wrong?
What is category[‘wsc_uid_pk’] ? You can’t pass arbitrary objects
through a link like that.
Fred
Yes. Thank you.
I have …
<% @list_web_serv_cats.each do |category| %>
<% form_tag({:controller => ‘customers’, :action =>
‘list_services_available_at_location’,
:wsc_uid=>category[‘wsc_uid_pk’]}) do %>
<%= category[‘wsc_uid_pk’] %>
<%= select_tag(:wsc_uid, ‘Select Type’ +
options_for_select(@list_web_serv_types.collect{|servtype|
[servtype[‘wbt_description’].to_s, servtype[‘wbt_uid_pk’].to_i]},
params[:id].to_i)) %>
<% @list_web_serv_types.each do |servtype| %>
<%=
servtype[‘wbt_uid_pk’] %> <%= servtype[‘wbt_description’] %> |
<% end %>
<% end %>
<% end %>
Thank you,
Rachel S Nichol
W: (843) 686-1223
F: (843) 341-0980
Hargray’s mission: To envision and deliver customer delight
On Thu, Jun 18, 2009 at 3:38 PM, Rachel
Nichol[email protected] wrote:
Thank you,
Rachel S Nichol
W: (843) 686-1223
F: (843) 341-0980
I think you may be coming into trouble because of the use of a query
string element in the form action url as well as the form parameters.
Try
<% form_tag({:controller => ‘customers’, :action =>
‘list_services_available_at_location’}) do %>
<%= hidden_field_tag ‘wsc_uid_pk’, category[‘wsc_uid_pk’] %>
…
Andrew T.
http://ramblingsonrails.com
http://MyMvelope.com - The SIMPLE way to manage your savings
Wow! I ran the w3c html validator and have many errors (just as you
detected). Am in process of correcting those now.
Thank you so much. I had no idea a tool like this existed.
Thank you,
Rachel S Nichol
W: (843) 686-1223
F: (843) 341-0980
Hargray’s mission: To envision and deliver customer delight
2009/6/18 Frederick C. [email protected]:
indeed data. Â So, why, when running debugger in controller, is
params[:wsc_uid] = nil? Â Does anyone know what I could be doing wrong?
What is category[‘wsc_uid_pk’] ? You can’t pass arbitrary objects
through a link like that.
Fred
Also your tr and td tags are all to pot. In addition a form cannot
span part of a table, it must either include the whole table or lie
entirely within one cell.
Paste your page source (from view page source in browser) into w3c
html validator to check that it is valid html.
Colin
Sorry I did not provide more details. Another email has been sent with
code snippet from view (and included below). Please pardon my
incompleteness as I am very new to this type of development.
Is it okay to use a hidden field? I have seen talk of hidden fields in
my Google searches but do not understand how to use it, but then, I have
been focused on just assigning to the parameter. So, I will Google some
more on hidden field and focus on how that is done.
I have …
<% @list_web_serv_cats.each do |category| %>
<% form_tag({:controller => ‘customers’, :action =>
‘list_services_available_at_location’,
:wsc_uid=>category[‘wsc_uid_pk’]}) do %>
<%= category[‘wsc_uid_pk’] %>
<%= select_tag(:wsc_uid, ‘Select Type’ +
options_for_select(@list_web_serv_types.collect{|servtype|
[servtype[‘wbt_description’].to_s, servtype[‘wbt_uid_pk’].to_i]},
params[:id].to_i)) %>
<% @list_web_serv_types.each do |servtype| %>
<%=
servtype[‘wbt_uid_pk’] %> <%= servtype[‘wbt_description’] %> |
<% end %> <% end %>
<% end %> <!--
@list_web_serv_cats.each end -->
Thank you,
Rachel S Nichol
Hargray’s mission: To envision and deliver customer delight
Hello All,
I have been working on dynamically filling the drop box some more and
got it to work – if I call the model directly from the view (code
snippet below <%= select(“wsc_uid”…)…).
Now, I know this is not correct. I resorted to doing it this way
because when trying to pass category[‘wsc_uid_pk’] to the controller,
via a param, a nil value is being passed - even though I can clearly see
there is data for category[‘wsc_uid_pk’].
I tried Andrew’s suggestion for hidden field tag but to no avail… the
controller was still not seeing the data.
Can anyone please give me an idea of what I need to do to get this to
work correctly between View - Controller - Model?
Code Snippet from View:
<% @list_web_serv_cats.each do |category| %>
<%=
category['wsc_description'] %> |
|
<%= select("wsc_uid"+category['wsc_uid_pk'].to_s, "id",
Customer.list_web_serv_types(category['wsc_uid_pk']).map {|u|
[u['wbt_description'], u['wbt_uid_pk']]}) %>
|
<% end %>
Code Snippet from Model:
def self.list_web_serv_types(wsc_uid_pk) # should be called from
customers controller
ActiveRecord::Base.connection.select(“SELECT gdt_number1 wbt_uid_pk,
gdt_number2
wbt_web_serv_cats_uid_fk,
gdt_alpha1 wbt_code,
gdt_alpha2
wbt_description
FROM TABLE
(service_availability_web_pkg.fn_get_web_service_type(#{wsc_uid_pk}))”)
end
Thank you,
Rachel S Nichol
Hargray’s mission: To envision and deliver customer delight
2009/6/26 Rachel N. [email protected]:
 Â
  <%= select(“wsc_uid”+category[‘wsc_uid_pk’].to_s, “id”, Customer.list_web_serv_types(category[‘wsc_uid_pk’]).map {|u| [u[‘wbt_description’], u[‘wbt_uid_pk’]]}) %>
 Â
There is no reason why you should not call model methods from the
view. To improve the modularity however I would suggest providing a
Customer model method called select_box_values or whatever conveys the
right impression to you when you read the code. This method contains
the code that you have in your select statement. Then instead of your
code Customer.list_…map{…} you just have
Customer.select_box_values. Make sure it always returns something
which will be valid in the view however (even in unusual conditions)
so that you do not need any logic in the view.
If you still wish to move this our of the view then in the controller
which invokes this view put
@select_box_values = Controller.select_box_values
and use @select_box_values in the view.
Colin
Is there anyone in this group that can give me a pointer on this?
Thank you,
Rachel S Nichol
Hargray’s mission: To envision and deliver customer delight
Thank you so much Colin. I really thought calling the model method from
the view was not acceptable. I appreciate your input on this as I am
still learning the framework and proper techniques.
Thank you,
Rachel S Nichol
W: (843) 686-1223
F: (843) 341-0980
Hargray’s mission: To envision and deliver customer delight