javascript - Rails 不显眼的 javascript - 无法加载资源

标签 javascript ruby-on-rails ajax

我正在尝试使用 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

index.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 %>

模型只包含 :name 存在验证

最佳答案

从 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

关于javascript - Rails 不显眼的 javascript - 无法加载资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27641191/

相关文章:

ruby-on-rails - Rails 4/postgresql - 根据另一个表数据在一个表上插入数据(after_create)

jquery - Ajax 请求不适用于 iPad 1 (iOS 5.1.1)

javascript - Node redis 客户端 HSET 命令失败

javascript - 我在 jQuery 中有一个分步过程,有更好的方法来编码吗?

javascript - 为什么我的动画有时会在 Firefox 中卡住?

css - 如果找到特定字符串,则有条件地添加一个类 Rails CoffeeScript

javascript - Kendo UI Grid - 在单元格焦点上选择文本

ruby-on-rails - 在 rails 中将列类型更改为更长的字符串

javascript - D3.js - 在 AJAX 请求期间添加加载通知

javascript - 在外部 .js 文件中获取请求属性(作为列表发送)