我的应用程序的用户通过表单提交请求并接收一组数字。这些数字在一天中不断更新,我需要一种方法来跟踪最后两个数字的平均值。
它的工作原理如下:
我的申请目前只能提出号码请求。现在我需要一种方法来保存该数字及其创建时间,允许搜索第二个数字,然后对它们执行计算。
以下是我的文件内容。
home.html.erb,格式为:
<h1>Welcome to xpTrack</h1>
<%= form_tag("/search", method: "get") do %>
<%= label_tag(:username, "Search for:") %>
<%= text_field_tag(:username) %>
<%= submit_tag("Search") %>
<% end %>
此表单将用户输入的用户名传递给控制器中的params[:username]
:
SearchController
class SearchController < ApplicationController
def home
require 'open-uri'
@username = params[:username]
@url = "http://hiscore.runescape.com/index_lite.ws?player=#{@username}"
@doc = Nokogiri::HTML(open(@url))
@stats = @doc.text.split(' ').map{|a| a.split(",") }
@skills = %w(overall, attack, defence, strength, constitution, ranged, prayer, magic, cooking, woodcutting, fletching, fishing, firemaking, crafting, smithing, mining, herblore, agility, thieving, slayer, farming, runecrafting, hunter, construction, summoning, dungeoneering, divination)
@max = 13034431
end
end
此视图在搜索后呈现:
<h1>
<%= @username.capitalize %>
</h1>
<table>
<tr>
<th>Skill</th>
<th>Rank</th>
<th>Level</th>
<th>Experience</th>
<th>Experience to 99</th>
</tr>
<% @skills.each_with_index do |skill, i| %>
<tr>
<td><%= skill.chomp(',').capitalize %></td>
<td><%= @stats[i][0] %></td>
<td><%= @stats[i][1] %></td>
<td><%= @stats[i][2] %></td>
<% if @stats[i][2].to_i < @max %>
<td><%= @max - (@stats[i][2]).to_i %></td>
<% end %>
</tr>
<% end %>
</table>
链接到Heroku的应用程序:http://runescapecalc.herokuapp.com/
搜索时,请使用用户名“Brink”。