Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.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 3:如何呈现来自另一个控制器的操作';s观点_Ruby On Rails_Controller_Action_Render - Fatal编程技术网

Ruby on rails Rails 3:如何呈现来自另一个控制器的操作';s观点

Ruby on rails Rails 3:如何呈现来自另一个控制器的操作';s观点,ruby-on-rails,controller,action,render,Ruby On Rails,Controller,Action,Render,我试图从另一个控制器的视图调用操作: ControllerCountries有一个名为selectbox的操作,它从所有国家/地区生成一个html selectbox作为一个部分。 ControllerCustomers有一个名为new的操作,它为所有Customers属性生成一个html表单。我想在此表单中插入来自国家/地区的selectbox#selectbox 实现这一目标的正确方法是什么?你做错了。如果有一段代码需要重用(如html selectbox生成),则应将其放入帮助程序和/或使

我试图从另一个控制器的视图调用操作:

Controller
Countries
有一个名为
selectbox
的操作,它从所有国家/地区生成一个html selectbox作为一个部分。
Controller
Customers
有一个名为
new
的操作,它为所有Customers属性生成一个html表单。我想在此表单中插入来自
国家/地区的selectbox#selectbox


实现这一目标的正确方法是什么?

你做错了。如果有一段代码需要重用(如html selectbox生成),则应将其放入帮助程序和/或使用分部来呈现html selectbox部分


请记住,如果代码有点复杂(例如,超过一行或两行),这是唯一的好建议。以下是我在谷歌搜索时发现的一篇文章,它可能会帮助您:

对于您正在做的事情,将代码提取到helper方法是正确的方法。但是,如果您仍然希望使用来自其他用户的am操作,则可以使用以下官方Rails插件:


谢谢您的链接。我决定把我的代码保留在分部代码中。但还有另一个问题:我想通过AJAX重用selectbox,因此部分内容属于控制器“国家”。有没有一种方法可以从另一个控制器的视图中调用操作?@silent查看一个名为“cells”的gem,或者谷歌搜索“rails cells”