gpt4 book ai didi

ruby-on-rails-3 - 在 ActiveAdmin 中创建动态表单

转载 作者:行者123 更新时间:2023-12-02 07:06:58 25 4
gpt4 key购买 nike

大家好,我对在事件管理员中构建自定义表单非常困惑。我已经想通了,甚至使用事件管理员设置了我自己的自定义表单。但是我需要在这里创建一个动态表单。这涉及进行一些 ajax 调用并返回部分表单供用户填写。

您似乎可以创建一个成员操作,但那是在已创建的资源上。就我而言,我需要在尚未创建的资源上创建多个条目。

最佳答案

这可能会让您入门。一种方法是将您的 ajax 路由添加到 config.routes(只是一些随机示例代码):

match '/admin/search/authors' =>  'admin/articles#search_authors',  :via => 'post', :as => :admin_search_authors

然后在正确的寄存器 block 中,在这种情况下,在 app/admin/articles.rb 中,您可以放置​​ Controller 逻辑

ActiveAdmin.register Article do
...
controller do
def search_authors
@authors = Author.find_by_query params[:query]
render :layout => false, :template => 'admin/authors/search'
end
end

end

在这种情况下,模板只是呈现一个无序列表以放入表单中。位于 app/views/admin/authors/search.html.erb 并且看起来像:

<ul>
<% if @authors.count < 1 %>
<li>None</li>
<% else %>
<% @authors.each do |a| %>
<li>
<a href="#" onclick="javascript:insert_your_own_voodoo_function_here();return false;">
<%= raw a.listname %>
</a>
</li>
<% end %>
<% end %>
</ul>

触发 ajax 调用的自定义 jquery 可能如下所示,这里使用了 delayedObserver(感谢 http://code.google.com/p/jquery-utils/wiki/DelayedObserver):

$(function() { 
$('#search_author').delayedObserver(function() {
$('#search_author').after('<img class="ajax-loader" id="ajax-loader" alt="Ajax-loader" src="/images/ajax-loader.gif">');
$.ajax({
url: '<%= admin_search_authors_path %>',
dataType: 'html',
type: 'post',
data: { query: $('#search_author').val(), authenticity_token: $('meta[name=csrf-token]').attr("content")},
success: function(data) {
$('.ajax-loader').remove();
$('#chooseauthor').html(data);
$("#artikel_edit_auteurs").effect("highlight", {}, 1500);
}
});
}, 0.5);
});

一切皆有可能。只分析你真正需要的东西:形式部分,嵌套形式部分?视选?也许您想构建一个多步骤表单。祝你好运。

关于ruby-on-rails-3 - 在 ActiveAdmin 中创建动态表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10370775/

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