I'm trying to create a very simple application that determines whether two words are anagrams, but I'm having a lot of trouble doing it on RoR. I'm currently stuck on this "Missing template" error. I have the following form, which is just two text fields for the words and two labels and a submit button:
<%= form_for :solver, url: solver_solve_path do |f| %>
<p>
<%= f.label "First word or sentence" %><br>
<%= f.text_field :first %><br>
</p>
<p>
<%= f.label "Second word or sentence" %><br>
<%= f.text_field :second %><br>
</p>
<p>
<%= f.submit %>
</p>
<%end%>
And in the routes.rb file I have:
Rails.application.routes.draw do
get 'welcome/index'
post 'solver/solve'
root 'welcome#index'
The SolverController looks like this:
class SolverController < ApplicationController
def create
render plain: params[:solver].inspect
end
def solve
wordone = params[:solver][:first]
wordtwo = params[:solver][:second]
wordone.chars.sort { |a, b| a.casecmp(b) } .join
puts wordone
wordtwo.chars.sort { |a, b| a.casecmp(b) } .join
puts wordtwo
end
end
However when I fill in the form and press submit I get a missing template error:
Missing template solver/solve, application/solve with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in: * "/home/mariana/Documents/RD-anagram/anagram/app/views"
Can anyone explain to me what's happening and what I can do to fix this?
As this is a post
method, the controller action should redirect to another action conventionally. Otherwise, it will look for a view in app/views/solver/solve.html.erb
. If you have such a view, it will render it, otherwise, it will yell at you for not telling it what to render.
Collected from the Internet
Please contact javaer1[email protected] to delete if infringement.
Comments