2017-02-26 5 views
0

dies ist die Website: https://deadindustry-newnew-recruit.herokuapp.com/Heroku js.erb Dateiausgaben bildet es soll als Text machen

hier ist die Github: daveasdf/deadindustry_newnew_recruit

wenn Sie das Formular eingeben, es soll die Form machen , und die Liste der Unterstützer auf der rechten Seite, aber stattdessen spuckt sie die Textversion von ihnen bei https://deadindustry-newnew-recruit.herokuapp.com/supporters.js, die eine zufällige Webseite ist.

ich bin kein entwickler, ich bin nur ein musiker, also schätze ich jede und alle hilfe. auch bitte meine Band check out: soundcloud.com/whorwood

hier die Besonderheiten:

Seite:

<div class="row"> 
    <div class="col-md-12"> 
    TEXT 
    </div> 
</div> 
<br> 


<div class="row"> 
    <div class="col-md-4"> 
    <div id="home_form"> 
     <%= render "supporters/form" %> 
    </div> 
    </div> 
    <div class="col-md-2"> 
    </div> 
    <div class="col-md-6" id="home_list"> 
    <br> 
    <%= render 'supporters/show_supporters' %> 
    </div> 
</div> 

Controller:

class SupportersController < ApplicationController 

    ... 
    def create 
    @supporter = Supporter.new(supporter_params) 
    @supporters = Supporter.all.order(created_at: :desc) 

    respond_to do |format| 
     format.js 
    end 
    end 

    ... 

create.js

<% if @supporter.save %> 
    $("#home_list").html("<%= j render 'show_supporters' %>") 
    $("home_form").html("<%= j render 'form' %>") 
<% else %> 
    $("#home_form").html("<%= j render 'form', supporter: @supporter %>") 
    $('#build_error').remove(); 
    <% if @supporter.errors.any? %> 
     var build_error = "<div class='alert alert-danger' id='build_error'>"; 
     build_error += "You've got <%= pluralize(@supporter.errors.count, 'error') %>."; 
     build_error += "<ul id='error_explanation'>"; 
     <% @supporter.errors.full_messages.each do |msg| %> 
     <% if msg === "Ip has already been taken" %> 
      <% msg = "You've already posted your support. Thanks!" %> 
     <% end %> 
     build_error += "<li><%= j msg %></li>"; 
     <% end %> 
     build_error += "</ul>"; 
     build_error += "</div>"; 
     $(build_error).insertBefore("#home_form"); 
    <% end %>   
<% end %> 

Antwort

0

Sie übergeben a falsche Handlung in Form

<form novalidate="novalidate" class="simple_form new_supporter" id="new_supporter" 
action="/supporters.js" accept-charset="UTF-8" data-remote="true" method="post"> 

Statt /supporter.js sollte nur /supporters

Sie müssen format: :js von dieser Linie entfernen sein:

<%= simple_form_for(@supporter, remote: true, format: :js) do |f| %> 
+0

hey danke Mann. So geht es jetzt zu/Unterstützer, und der Text erscheint nicht, aber es soll nur das Formular auf der Seite aktualisieren und die Unterstützer/show_supporters in der #home_list aktualisieren. – daveasdf

+0

Alex hat es herausgefunden - es war kein Beißring installiert, so dass der Bootstrap fehlgeschlagen ist. – daveasdf