Rails 3.1.3 I believe this is a very very fundamental question, but since I am new to Rails, it''s more productive to ask someone to point out what I need to do. Say, I have a search method that generates a list of youtube videos. I have completed this part. And also, I have set up a database, Video, whose fields are video_title and URL. I need to place a button to each of these video outcomes. My question is : when clicking the button, how can I automatically send the URL of the corresponding video and simultaneously redirect to NEW page where users can create a new video entry??? In other words, in the creating new page, the URL (and hopefully the video_title) is to be already filled out. I am thinking that I need to set "routes.rb" so that redirecting can take some values together. But routing is very confusing to me so far. Could anyone help me out? soichi -- Posted via http://www.ruby-forum.com/. -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Fri, Jan 27, 2012 at 00:54, Soichi Ishida <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> when clicking the button, how can I automatically send the URL of the > corresponding video and simultaneously redirect to NEW page where users > can create a new video entry??? In other words, in the creating new > page, the URL (and hopefully the video_title) is to be already filled > out.Let me see if I understand correctly what you want. When you say "send the URL" you don''t mean that the user should be sent to that page (whether in the same tab or window, or a new one), but simply that that should be the pre-filled value on the "New Video" page. Right? There may be a more "Railsy" way to do this, but what comes to my mind is: Have the links link to #new, but add a parameter called something like video_url. You could make it a URL parameter, so that rather than going to myvideostore.com/videos/new, you''d go to myvideostore.com/videos/new?video_url=http://youtube.com?watch=abc123 or whatever. (Actually the video_url should be url-encoded, but I think Rails will handle that for you.) To do that, I think you can pass a hash of params to link_to, or IWCTW you can tack it on manually. Or you can make them form params, so they don''t show up and look ugly on the URL after the user clicks. Make a tiny form for each one. Have the URL as a hidden field. Have the link submit the form, to the videos_controller#new. Either way, in the controller, after you call Video.new, set the object''s url to params[:video_url]. Then when you display it, the value should show up just fine. Let us know how that works for you. -Dave -- Dave Aronson: Available Cleared Ruby on Rails Freelancer (NoVa/DC/Remote) -- see www.DaveAronson.com, and blogs at www.Codosaur.us, www.Dare2XL.com, www.RecruitingRants.com -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Thanks for your explanation. It is exactly what I wanted. in search.html.erb, I added <%= link_to(''RegisterThisMovie'', {:controller => ''video'', :action => ''new'', :url => y }) %> ''y'' contains the url of the movie after executing the search. in video_controller.rb, I added def new @video = Video.new @video.url = params[:url] #<---HERE respond_to do |format| format.html # new.html.erb format.json { render json: @video } end end then it worked fine! Thanks for your help. soichi -- Posted via http://www.ruby-forum.com/. -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Fri, Jan 27, 2012 at 23:14, Soichi Ishida <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Thanks for your explanation. It is exactly what I wanted.Great! Now let''s take it to the next level. I think you can make it a little more "canonical". Instead of:> <%= link_to(''RegisterThisMovie'', {:controller => ''video'', :action => > ''new'', :url => y }) %> > > ''y'' contains the url of the movie after executing the search.try: <%= link_to( ''Register This Movie'', new_video_path, :url => y ) %> Also you can try getting used to the newer hash syntax, and do: <%= link_to( ''Register This Movie'', new_video_path, url: y ) %> I''m not 100% sure off the top of my head that these will work, but it should be at least close. :*) The built-in url helpers like new_whatever_path, edit_whatever_path(some_object), etc. will save you lots of typing and thus errors. -Dave -- Dave Aronson: Available Cleared Ruby on Rails Freelancer (NoVa/DC/Remote) -- see www.DaveAronson.com, and blogs at www.Codosaur.us, www.Dare2XL.com, www.RecruitingRants.com -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Thanks again! -- Posted via http://www.ruby-forum.com/. -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.