gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:07:42 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com