ruby on rails - ActionView::MissingTemplate for create action -


when submit form receive error: missing template letsgos/create, application/create {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby]}.

what not understanding why it's looking /create when view create from _form.html.erb. shouldn't need make /create file. missing here?

letsgos_controller.rb:

  before_action :signed_in_user, only: [:create, :destroy]    def create     @letsgo = current_user.letsgos.build(letsgo_params)     if @letsgo.save       flash[:success] = "date posted!"       redirect_to root_url end    def destroy     @letsgo.destroy     redirect_to root_url   end 

users_controller:

def show     @user = user.find(params[:id])     @letsgos = @user.letsgos.paginate(page: params[:page])     @letsgo = current_user.letsgos.build if signed_in?'   end 

letsgo.rb:

  belongs_to :user   default_scope -> { order('created_at desc') }   validates :content, presence: true, length: { maximum: 360 }   validates :tag, presence: true   validates :user_id, presence: true end 

/users/show.html.erb:

<% if @user.letsgos.any? %>     dates (<%= @user.letsgos.count %>)     <%= render @letsgos %>     <%= will_paginate @letsgos %>     <% end %> 

/letsgos/_form.html.erb

<%= form_for(@letsgo) |f| %>     <div class="field">         <%= f.text_area :content, placeholder: "propose new date..." %>         </div>         <%= f.submit "post", class: "btn btn-large btn-primary" %>         <% end %> 

/letsgos/home.html.erb:

<% if signed_in %>     <% render 'letsgos/form' %> 

inside letsgoes_controller.rb have following create method:

  def create     @letsgo = current_user.letsgos.build(letsgo_params)     if @letsgo.save       flash[:success] = "date posted!"       redirect_to root_url     end   end 

according method, if @letsgo.save return false (because of validation or else), code not executed, meaning rails try render view file same name controller action - create in case. need account false case of if. work:

  def create     @letsgo = current_user.letsgos.build(letsgo_params)     if @letsgo.save       flash[:success] = "date posted!"       redirect_to root_url     else       flash[:error] = "date not posted!"       redirect_to root_url     end   end 

Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

java - Copying object fields -

c++ - Clear the memory after returning a vector in a function -