轨道不显眼 无法加载资源

Rails unobtrusive Failed to load resource

本文关键字:加载 资源 不显眼 轨道      更新时间:2023-09-26

我正在尝试使用 AJAX 添加新对象,但我得到的只是"加载资源失败:服务器响应状态为 500(内部服务器错误)"。

花了大约 4 个小时试图找到解决方案,遵循了 2 个教程,但该错误从未离开过我。

我的characters_controller.rb

class CharactersController < ApplicationController
def index
    @characters = Character.all.order("id DESC")
end
def create
    @character = Character.new(params[:character])
    if @character.save  
        flash[:notice] = "Successfully created post."
    end
    respond_to do |format|
        format.js
    end
end
end

索引.html.erb

<div class="header">
    <p>All Hobbit characters</p>
</div>
<div class="characters">
    <%= render @characters %>
</div>
<%= form_for(Character.new, :remote => true) do |f| %>
    <div class="field">
        <%= f.label :name %><br />
        <%= f.text_field :name %>
    </div>
    <div class="actions">
        <%= f.submit %>
    </div>
<% end %>

创建.js.erb

<% if @character.new_record? %>
    $('input#character_name').effect('highlight', {color: 'red'});
<% else %>
    $('div#characters').append("<%= escape_javascript(render @character) %>");
    $('div#<%= dom_id(@character) %>').effect('highlight');
<% end %>

模型仅包含:名称存在验证

从 Rails 4 开始,你不能将params[:character]直接传递给 Character.new 方法。 尝试这样的事情:

def create
    @character = Character.new(character_params)
    if @character.save  
        flash[:notice] = "Successfully created post."
    end
    respond_to do |format|
        format.js
    end
end
private
def character_params
  params.require(:character).permit(:name)
end