Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 按钮“;新项目;在Rails 4中_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 按钮“;新项目;在Rails 4中

Ruby on rails 按钮“;新项目;在Rails 4中,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我有一个页面,可用于各种型号 其中一项是“语言”,我在其中选择语言和级别。但我只能插入一种语言。我想知道插入“新建”按钮以添加另一种语言的最佳方式是什么,即使是编辑页面(因为即使我也需要包含在编辑页面中) 我正在使用accepts\u嵌套的属性和simple\u表单 我尝试过几种解决方案,但找不到与我所需要的类似的教程。当您提到您有一个页面可以使用各种型号的时,您需要记住视图!=型号。在rails中,视图用于显示在控制器中定义的数据 当您询问如何插入new按钮以添加新语言时,这将完全取决于您的界

我有一个页面,可用于各种型号

其中一项是“语言”,我在其中选择语言和级别。但我只能插入一种语言。我想知道插入“新建”按钮以添加另一种语言的最佳方式是什么,即使是编辑页面(因为即使我也需要包含在编辑页面中)

我正在使用accepts\u嵌套的属性和simple\u表单


我尝试过几种解决方案,但找不到与我所需要的类似的教程。

当您提到您有一个页面可以使用各种型号的
时,您需要记住
视图!=型号
。在rails中,视图用于显示在
控制器中定义的数据

当您询问如何插入
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 %>
#app/views/languages/_new_lang.html.erb
更好的方法是使用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");
});
#app/views/controller/your_view.html.erb
#app/controllers/languages\u controller.rb
类LanaguageController

这将允许您将所需的数据发送到您的系统,以创建新的语言。可以改进,因此如果您想使用它,请在评论中告诉我

语言是独立的
模型
还是只是一个
属性
?Pavan,语言是独立的模型。谢谢Rich!我试试看。如果行得通,我就在这里发帖。