通貨と 2 つの通貨からの 2 つのドロップダウン入力に基づいて URL を生成する必要があります。たとえば、ユーザーが送信ボタンをクリックするとhttp://localhost:3000/currencies/usd-eur
、フォームの通貨が usd で to_currency が eur の場合に、生成される URL が次のようになります。
これが私の見解です(index.html.erb)
<%= semantic_form_for :calculator, :url => {:controller => "conversions", :action => "calculate" } do |f| %>
<p><%= f.label :amount %>
<%= f.text_field :amount %></p>
<p><%= f.label :from_currency %>
<%= select :calculator, :from_currency, Choices['from_currency'] %></p>
</p><%= f.label :to_currency %>
<%= select :calculator, :to_currency, Choices['to_currency'] %></p>
<p><%= f.submit "Calculate" %></p>
<%= end %>
ルート.rb
match 'currencies', to: 'conversions#index', via: :get
match 'currencies/convert', to: 'conversions#calculate', as: :calculate, via: :post
コントローラー(conversions_controller.rb)
def index
end
def calculate
@amount = params[:calculator][:amount]
@from_cur = params[:calculator][:from_currency]
@to_cur = params[:calculator][:to_currency]
@result = ConversionsHelper.calculate(@from_cur, @to_cur, @amount)
end
私はGoogle APIからデータを取得しているため、そのためのモデルはありません。したがって、RESFFUL規則の境界の外に出る可能性があります。詳細な回答をいただければ幸いです。ありがとう。