Ruby on Rails:如何基于search_field中的发布参数重定向页面? [英] Ruby on Rails: How to redirect page based on post params in search_field?

查看:96
本文介绍了Ruby on Rails:如何基于search_field中的发布参数重定向页面?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个小型股票市场应用程序,用户可以在该应用程序中基于股票代码查找公司股票信息.用户在搜索字段中发布:symbol参数后,应将其重定向到适当的公司"页面(例如《华尔街日报》,Yahoo Finance,Google Finance等).我目前能够使用符号手动输入路线,并且一切正常.例如,localhost:9292/company/GOOG.我完全是菜鸟,所以对您的帮助将不胜感激.谢谢!

I'm working on a little stock market app where the users can lookup company stock info based on the ticker symbol. After the user has posted the :symbol param in the search field, they should be redirected to the appropriate "company" page (like Wall Street Journal, Yahoo Finance, Google Finance, etc). I'm currently able to manually type in the route with the symbol and everything works good. For example, localhost:9292/company/GOOG. I'm a total noob, so any help would be greatly appreciated. Thanks!

我目前认为这是

<%== search_field_tag(:symbol, "Enter symbol") %>
<%== submit_tag ("Search") %>

这是在我的路线上

get  "/company/:symbol"  => "main#company"
post "/company/:symbol"  => "main#company_post"

我正在使用MarketBeat gem提取数据,但是我也有一个Company表,其中有列符号和名称.这是我的控制器:

I'm using the MarketBeat gem to pull in the data, but I also have a Company table where I have columns symbol and name. Here is my controller:

class MainController < ApplicationController
def index
    render :index and return
end

def company
    @name = MarketBeat.company params["symbol"]
    @symbol = MarketBeat.symbol params["symbol"]
    @price  = MarketBeat.last_trade_real_time params["symbol"]
    @change = MarketBeat.change_and_percent_change params["symbol"]
    @volume = MarketBeat.volume params["symbol"]
    @days_range = MarketBeat.days_range params["symbol"]
    @eps = MarketBeat.earnings_to_share params["symbol"]
    @pe = MarketBeat.pe_ratio params["symbol"]
    @stock_exchange = MarketBeat.stock_exchange params["symbol"]


    market_cap = MarketBeat.market_capitalization params["symbol"]
    # @market_cap is rounded to billions
    @market_cap = market_cap.to_i / 1000

    render :company and return
end

推荐答案

在您的main#company_post方法中,输入以下内容:

In your main#company_post method, put the following:

redirect_to "/company/#{params[:symbol]}"

所以路线应该是:

get  "/company/:symbol"  => "main#company"
post "/company"  => "main#company_post"

控制器:

def company_post
  redirect_to "/company/#{params[:symbol]}"
end

视图:

<%= form_tag("/company", method: :post) do %>
  <%= search_field_tag(:symbol, "Enter symbol") %>
  <%= submit_tag ("Search") %>
<% end %>

这篇关于Ruby on Rails:如何基于search_field中的发布参数重定向页面?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆