Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.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将视图概括为辅助对象_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails将视图概括为辅助对象

Ruby on rails Rails将视图概括为辅助对象,ruby-on-rails,Ruby On Rails,我想知道你是否能帮忙。首先,我的观点如下: <%= form_tag all_path, :method => 'get' do %> <%= hidden_field_tag :direction, params[:direction] %> <%= hidden_field_tag :sort, params[:sort] %> <p> Search:

我想知道你是否能帮忙。首先,我的观点如下:

   <%= form_tag all_path, :method => 'get' do %>
        <%= hidden_field_tag :direction, params[:direction] %>
        <%= hidden_field_tag :sort, params[:sort] %>
        <p>
            Search: 
            <%= text_field_tag :search %>
            by 
            <%= select_tag :search_column, options_for_select(MyTable.translated_searchable_columns(['col1', 'col2']), params[:search_column]) %>
            <%= submit_tag 'Search' %>
        </p>
    <% end %>
我对其他视图的数量使用相同的代码,因为它们是相似的页面。我想把它弄干。更改的值是MyTable、col1、col2


其他一切都保持不变。我不明白的是,在一个helper方法中我是如何做到这一点的,我只是尝试了复制、粘贴并将这些值作为参数传递进来,但这不起作用,因为helper是ruby代码?不是html。我如何在应用程序_helper.rb中创建它?我是构建一个传递回的字符串,还是因为我也在使用MyTable而有其他方法,这一部分最让我困惑。

y建议将整个视图文件作为一个部分保留。col1和col2使用一些变量代替MyTable。可以使用控制器中这些变量的不同值渲染此部分

您所要做的就是使用render_partial和参数作为这三个变量

创建一个partial.mypartial,如下所示

 <%= form_tag all_path, :method => 'get' do %>
        <%= hidden_field_tag :direction, params[:direction] %>
        <%= hidden_field_tag :sort, params[:sort] %>
        <p>
            Search: 
            <%= text_field_tag :search %>
            by 
            <%= select_tag :search_column, options_for_select(my_table.constantize.translated_searchable_columns([col1, col2]), params[:search_column]) %>
            <%= submit_tag 'Search' %>
        </p>
 <% end %>
通过这种方式,您可以动态地发送模型名和col变量。
顺便说一句,我很好奇,这是以前定义的方法吗??因为使用了params散列而询问。您可能还必须将这些参数散列发送到:locals。

我的建议是将整个视图文件作为一个部分保存。col1和col2使用一些变量代替MyTable。可以使用控制器中这些变量的不同值渲染此部分

您所要做的就是使用render_partial和参数作为这三个变量

创建一个partial.mypartial,如下所示

 <%= form_tag all_path, :method => 'get' do %>
        <%= hidden_field_tag :direction, params[:direction] %>
        <%= hidden_field_tag :sort, params[:sort] %>
        <p>
            Search: 
            <%= text_field_tag :search %>
            by 
            <%= select_tag :search_column, options_for_select(my_table.constantize.translated_searchable_columns([col1, col2]), params[:search_column]) %>
            <%= submit_tag 'Search' %>
        </p>
 <% end %>
通过这种方式,您可以动态地发送模型名和col变量。
顺便说一句,我很好奇,这是以前定义的方法吗??因为使用了params散列而询问。您可能还必须将这些参数散列发送到:locals。

为什么不使用共享部分并将select选项作为参数传递?类似于或。使用助手需要使用capturehelopercapture或@template.concat。为什么不使用共享部分并将选择选项作为参数传递?类似于或。使用助手需要使用capturehelopercapture或@template.concat。不幸的是,我完全不明白你在说什么。“你能给我举个例子吗?”巴兹利在我的回答中加了一个例子。不幸的是,我完全搞不懂你在说什么。你能给我举个例子吗?@Bagzli在我的回答中加了一个例子。