Rails отправив форму через ajax - PullRequest
0 голосов
/ 27 июня 2018

Существует некоторая проблема с использованием ajax в рельсах. Я хочу создать новый пост на моей странице wellcome /exe. Но когда я нажимаю на кнопку, она показывает

Нет подходящих маршрутов [POST] "/ welcome / index"

Wellcome / index.html

    <b>Projects</b>

    <ul id="projects">
    <% @projects.each do |project| %>
      <h2><%= project.title %></h2>
    <% end %>
    </ul>

    <br>

    <%= form_for :project do |f| %>
    <%= f.text_field :title, :placeholder => ' Enter new project here..' %>
    <but><%= f.submit 'Add Project'%></but>
    <% end %>

welcome_controller.rb

class WelcomeController < ApplicationController
  def index
      @projects = Project.all
      @project = Project.new
  end

def create
  @project = Project.new(project_params)

  respond_to do |format|
    if @project.save
      format.html { redirect_to @project, notice: 'project was successfully created.' }
      format.js  
      format.json { render json: @project, status: :created, location: @project }
    else
      format.html { render action: "new" }
      format.json { render json: @project.errors, status: :unprocessable_entity }
    end
  end
end

    private
  def project_params
    params.require(:project).permit(:title)
  end


end

create.js.erb

$('#projects').html("<%= escape_javascript (render 'projects') %>");

маршруты проекта

Prefix Verb   URI Pattern                 Controller#Action
project_index GET    /project(.:format)          project#index
              POST   /project(.:format)          project#create
  new_project GET    /project/new(.:format)      project#new
 edit_project GET    /project/:id/edit(.:format) project#edit
      project GET    /project/:id(.:format)      project#show
              PATCH  /project/:id(.:format)      project#update
              PUT    /project/:id(.:format)      project#update
              DELETE /project/:id(.:format)      project#destroy

Потратил много времени на обновление этого с помощью AJAX, но каждый раз терпел неудачу. Кто-нибудь может помочь? Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Если вы хотите интегрировать Ajax и Ruby, вам нужно добавить строку ниже в действие ссылки

remote:true

также вы можете проверить это о Ajax и Ruby Как Ajax работает с ruby ​​на рельсах

0 голосов
/ 27 июня 2018

Вы должны добавить remote: true в форму.

<%= form_for @project, url: project_index_path, remote: true do |f| %>
    <%= f.text_field :title, :placeholder => ' Enter new project here..' %>
    <but><%= f.submit 'Add Project'%></but>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...