Ruby on Rails
Thursday, July 9, 2015
So you are going to have one text field that gathers membercode? And associated with the membercode are going to be a bunch of bottons, each that will provide some controller action on membercode. Will the action always be def create?
You have your recover_letter_rpts_path(:membercode). I am assuming that this path as defined in your router.rb and leads to controller action 'create'. Run rake routes and show us the result, or copy/paste your route.rb here.
Don't understand: "And there is no form to contain these fields." Plural fields. These fields?:
<%= label_tag :"Enter member code" %>
<%= text_field_tag :membercode%>
<%= button_to "Death/Retired Recovery Letter Printing", recovery_letter_rpts_path(membercode: membercode) %>
Are you saying that this code is not contained in a form...? Otherwise, show us the form tag.
Is membercode being returned in your params? Have you been able to capture that param in your controller?
Pending your answers to the above, a possible solution is this...
If all buttons lead to def create...
Go to your router and modify recover_letter_rpts_path(:membercode). Add a new parameter, let's call it :process. Then for the above button, you could rewrite it as..
<%= button_to "Death/Retired Recovery Letter Printing", recovery_letter_rpts_path(membercode: membercode, process: 'verify_existence') %> I'm not sure about the best syntax for adding a second parameter
In your controller
def create
membercode = params[:membercode] ## should verify existence (blank?) of params[:membercode]
membercode_process = params[:process] ## should verify existence (blank?) of params[:process]
if membercode_process == 'verify_existence'
member_exist = Member.find_by_member_code(membercode) ## pretty sure that 'exist' is a deprecated method in Rails 2. I'd use something like member_exist
respond_to do |format|
if member_exist.blank?? ## blank? is more thorough, it tests for object.nil? || object.empty?
## puts is usually done for debugging purposes, do you want to provide this information to your user? If so, you may want to put this content into a partial -- depending on how elaborate your messages become -- which will be rendered in recoveries_path.
### Or you could store it in flash, which will be presented in recoveries_path
puts "******************************************"
puts "This is the member code #{membercode}" # done
puts "******************************************"
redirect_to(recoveries_path)
else
puts "This is the NO member code #{membercode}" ## Same as above
redirect_to(recoveries_path)
end
elsif membercode_process == 'some_other_process'
etc.....
end
end
end
If all buttons don't lead to def create... then create a new route path for each.... But I think that folks here will have better suggestions in that case.
-- You have your recover_letter_rpts_path(:membercode). I am assuming that this path as defined in your router.rb and leads to controller action 'create'. Run rake routes and show us the result, or copy/paste your route.rb here.
Don't understand: "And there is no form to contain these fields." Plural fields. These fields?:
<%= label_tag :"Enter member code" %>
<%= text_field_tag :membercode%>
<%= button_to "Death/Retired Recovery Letter Printing", recovery_letter_rpts_path(membercode: membercode) %>
Are you saying that this code is not contained in a form...? Otherwise, show us the form tag.
Is membercode being returned in your params? Have you been able to capture that param in your controller?
Pending your answers to the above, a possible solution is this...
If all buttons lead to def create...
Go to your router and modify recover_letter_rpts_path(:membercode). Add a new parameter, let's call it :process. Then for the above button, you could rewrite it as..
<%= button_to "Death/Retired Recovery Letter Printing", recovery_letter_rpts_path(membercode: membercode, process: 'verify_existence') %> I'm not sure about the best syntax for adding a second parameter
In your controller
def create
membercode = params[:membercode] ## should verify existence (blank?) of params[:membercode]
membercode_process = params[:process] ## should verify existence (blank?) of params[:process]
if membercode_process == 'verify_existence'
member_exist = Member.find_by_member_code(membercode) ## pretty sure that 'exist' is a deprecated method in Rails 2. I'd use something like member_exist
respond_to do |format|
if member_exist.blank?? ## blank? is more thorough, it tests for object.nil? || object.empty?
## puts is usually done for debugging purposes, do you want to provide this information to your user? If so, you may want to put this content into a partial -- depending on how elaborate your messages become -- which will be rendered in recoveries_path.
### Or you could store it in flash, which will be presented in recoveries_path
puts "******************************************"
puts "This is the member code #{membercode}" # done
puts "******************************************"
redirect_to(recoveries_path)
else
puts "This is the NO member code #{membercode}" ## Same as above
redirect_to(recoveries_path)
end
elsif membercode_process == 'some_other_process'
etc.....
end
end
end
If all buttons don't lead to def create... then create a new route path for each.... But I think that folks here will have better suggestions in that case.
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/d7c4f024-5f7b-4d92-96ee-63c2be113a9b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment