gpt4 book ai didi

jquery - 使用 jQuery 和 AJAX 将参数从 Controller 传递到 javascript,以在 Ruby on Rails 中呈现 View

转载 作者:行者123 更新时间:2023-12-01 04:17:40 25 4
gpt4 key购买 nike

我正在尝试 Ajaxify Ruby on Rails 应用程序,以避免在用户交互后重新加载每个页面。

我现在设法在幕后创建一个新想法,但一旦创建就不再显示它。

这是我的代码:

在想法 View 中形成:

<div id="new_proposition_form" style="display:none">
<%= form_for(@new_proposition, :remote => true) do |f| %>
<%= f.text_field :title, :class => "proposition_input", :id => "new_proposition_input" %>
<%= f.hidden_field :created_by %>
<%= f.hidden_field :father_id %>
<%= f.hidden_field :procontra %>
<%= f.hidden_field :created_at %>
<% end %>
</div>

在创意 Controller 中创建操作:

  def create
@idea = Idea.new(params[:idea])
@idea.created_at = Time.now

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

创意 View 中的create.js.erb:

$("<%= escape_javascript render(:file => 'ideas/new_proposition.html.erb') %>").insertBefore('#end_of_propositions_list');

其中“end_of_propositions_list”是所显示创意列表的唯一标识符。

我正在努力解决以下问题:

如果创意 View 中的new_proposition.html.erb View 类似于:

<div>
New proposition added
</div>

使用不引用任何对象或变量的代码,它可以工作,即用户可以看到所发生情况的确认。因此我知道浏览器中发起的远程操作击中了 Controller , Controller 击中了 JavaScript 模板,而 JavaScript 模板击中了部分 View 。

现在我希望新创建的想法出现,使用检索其属性并处理格式的部分。我觉得我需要将新创建的想法的 id 从想法 Controller 中的创建操作传递到由 format.js 调用的 create.js 脚本,然后传递到部分,以便它知道从数据库中提取什么想法.

我不知道如何处理从创建 Controller 操作传递到 create.js 和部分 View 的参数,非常感谢您的帮助。

最佳答案

我觉得不错……?因此,您接下来要做的是将实例变量 @idea 从 Controller 传递到部分:

$("<%= escape_javascript render(
:file => 'ideas/new_proposition.html.erb',
:idea => @idea) %>")
.insertBefore('#end_of_propositions_list');

然后在您的 View 中访问@idea:

<div>New proposition added</div>
<div>Title: <%= @idea.title => </div>

希望有帮助

关于jquery - 使用 jQuery 和 AJAX 将参数从 Controller 传递到 javascript,以在 Ruby on Rails 中呈现 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13469494/

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