I'm pretty new to ruby as well but I think the problem is that the Rails
router doesn't know what to do with a POST request to "/home/new". I think
you just have to add this line to routes.rb:

post 'home/new', to: 'home#new'

Like I said I'm a newbie myself so I'd love it if someone could correct me
if I'm wrong or let me know if I got it all.

On Tue, Jan 26, 2016 at 6:55 PM, Bob Tian <[email protected]> wrote:

> Hello all, I'm new to ruby and I am having trouble with adding new data
> (name, height, weight, etc). Everytime I try to save my data, I get
> this error:
>
> No route matches [POST] "/home/new"
> Rails.root: C:/Users/Jeffrey/blog
>
> Request
>
> Parameters:
>
> {"utf8"=>"✓",
>
>  
> "authenticity_token"=>"Vgkmt3PPEobQFpJyWNIoHNnXtkmq2Uyk4vjMvgl8ZdhwIvc516BzXUfDs05OZ/8LLfkyKTxca90qiA2LBYBnwQ==",
>  "@input"=>{"name"=>"asd",
>  "weight"=>"233",
>  "height"=>"23",
>  "color"=>"red",
>  "age"=>"23"},
>  "commit"=>"Save @input"}
>
>
> I am able to view index and enter the information, but when I submit, I
> get this problem. Any help would be appreciated! Thank you
> =================================================================
> home_controller.rb
> class HomeController < ApplicationController
>   def index
>     @inputs = Person.all
>   end
>
>   def new
>     @input = Person.new
>   end
>
>   def create
>     @input = Person.new(input_params)
>     if @article.save
>       redirect_to @input
>     else
>       render 'new'
>     end
>   end
>
>   def show
>     @input = Person.find(params[:id])
>   end
>
>   def edit
>     @input = Person.find(params[:id])
>   end
>
>   def update
>     @input = Person.find(params[:id])
>     respond_to do |x|
>       if @input.update(input_params)
>         x.html {redirect_to :action => 'index'}
>       else
>         x.html {render :edit}
>       end
>     end
>   end
>
>   private
>
>   def input_params
>     params.require(:inputs).permit(:name, :weight, :height, :color,
> :age)
>   end
> end
>
> =================================================================
> new.html.erb
>
> <h1>New People</h1>
>
> <%= render 'form' %>
>
> <%= link_to 'Back', home_index_path %>
>
> =================================================================
> _form.html.erb
>
> <%= form_for :@input do |person| %>
>   <div class="field">
>     <%= person.label :name %><br>
>     <%= person.text_field :name %>
>   </div>
>   <div class="field">
>     <%= person.label :weight %><br>
>     <%= person.number_field :weight %>
>   </div>
>   <div class="field">
>     <%= person.label :height %><br>
>     <%= person.number_field :height %>
>   </div>
>   <div class="field">
>     <%= person.label :color %><br>
>     <%= person.text_field :color %>
>   </div>
>   <div class="field">
>     <%= person.label :age %><br>
>     <%= person.number_field :age %>
>   </div>
>   <div class="actions">
>     <%= person.submit %>
>   </div>
> <% end %>
>
> =================================================================
> index.html.erb
>
> <p id="notice"><%= notice %></p>
>
> <h1>Listing People</h1>
>
> <table>
>   <thead>
>      <tr>
>          <th>Name</th>
>          <th>Weight</th>
>          <th>Height</th>
>          <th>Color</th>
>          <th>Age</th>
>          <th colspan="3"></th>
>      </tr>
>  </thead>
>
>  <tbody>
>      <% @inputs.each do |person| %>
>      <tr>
>          <td><%= person.name %></td>
>          <td><%= person.weight %></td>
>          <td><%= person.height %></td>
>          <td><%= person.color %></td>
>          <td><%= person.age %></td>
>          <td><%= link_to 'Show',home_path(person.id) %></td>
>          <td><%= link_to 'Edit', edit_home_path(person.id) %></td>
>      </tr>
>      <% end %>
>   </tbody>
> </table>
>
> <br>
> <%= link_to 'New Person', new_home_path %>
>
> =================================================================
>
> my routes.db has
>
> resources :home
> root 'home#index'
>
> --
> 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 unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/rubyonrails-talk/81a90dccf0c3e3eccd221174d5232dcc%40ruby-forum.com
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/CAEe%2BqudwzpQMm7P1YOUjQbgYXxD-Bcys6VptxXbGoK9P4xDSZw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to