我有一个页面,与各种型号的工作。
其中一项是" language ",我在这里选择语言和级别。但我只能插入一种语言。我想知道插入“新建”按钮来添加另一种语言的最好方法是什么,即使是编辑页面(因为即使我需要在编辑页面中包含)
我使用的是accepts_nested_attributes_for和simple_form。
我尝试了几种解决方案,但找不到任何类似的教程,我需要什么。
发布于 2014-05-05 16:16:21
当你提到你有一个works with various models的页面时,你需要记住views != models。在rails中,视图用于显示您在controllers中定义的数据。
当您询问插入new按钮以添加新语言时,这将完全取决于您的界面,以及您希望它如何工作。下面是一个很好的例子:
#app/views/languages/_new_lang.html.erb
<%= form_for Language.new, url: language_path do |f| %>
   <%= f.text_field :name %>
   <%= f.submit "Create" %>
<% end %>更好的方法是使用ajax并在页面上呈现一个无布局的元素:
#app/views/controller/your_view.html.erb
<%= button_to "Test", new_language_path, remote: true, id: "test" %>
#app/controllers/languages_controller.rb
Class LanaguageController < ActiveRecord::Base
    layout Proc.new { |controller| controller.request.xhr? ? false : "application" }
end
#app/assets/javascripts/application.js.erb
$(document).on("ajax:success", "#test", function(data) {
    $(data).appendTo("body");
});这将允许您将所需的数据发送到您的系统以创建新语言。可以改进,所以如果你想使用它,请在评论中让我知道
https://stackoverflow.com/questions/23464222
复制相似问题