将html导入rails方法(在helper.rb中)
我需要几次这段代码,为了遵循DRY方法(不要重复自己),我想避免使用这段代码并重新键入5次或更多。所以我想定义包含ruby和html以及ruby在html和js中的代码的方法。但我在认识上有问题 我的html.erb如下所示:将html导入rails方法(在helper.rb中),html,ruby-on-rails,ruby,ruby-on-rails-3,Html,Ruby On Rails,Ruby,Ruby On Rails 3,我需要几次这段代码,为了遵循DRY方法(不要重复自己),我想避免使用这段代码并重新键入5次或更多。所以我想定义包含ruby和html以及ruby在html和js中的代码的方法。但我在认识上有问题 我的html.erb如下所示: <% div_count = 1 %> <div> <% for post in @posts %> <div class="post-on-main-page-<%= div_count %>"
<% div_count = 1 %>
<div>
<% for post in @posts %>
<div class="post-on-main-page-<%= div_count %>"
id="js-count-<%= div_count_for_js %>">
<script>
$("#js-count-<%= div_count_for_js %>").click(function(){
window.location.href = "<%= post_url(post) %>";
});
</script>
<%= image_tag(post.picture.url) %>
<span><h5><%= post.theme %></h5></span>
</div>
<% end %>
<% div_count += 1 %>
<% if div_count == 4 %>
<% div_count = 1 %>
<% end %>
</div>
$(“#js count-”)。单击(函数(){
window.location.href=“”;
});
我想要create方法,我认为在应用程序中_helper.rb可以处理这段代码。什么看起来像这样:
def method_name(parameter)
<% div_count = 1 %>
<div>
<% for post in parameter %>
<div class="post-on-main-page-<%= div_count %>"
id="js-count-<%= div_count_for_js %>">
<script>
$("#js-count-<%= div_count_for_js %>").click(function(){
window.location.href = "<%= post_url(post) %>";
});
</script>
<%= image_tag(post.picture.url) %>
<span><h5><%= post.theme %></h5></span>
</div>
<% end %>
<% div_count += 1 %>
<% if div_count == 4 %>
<% div_count = 1 %>
<% end %>
</div>
end
def方法名称(参数)
$(“#js count-”)。单击(函数(){
window.location.href=“”;
});
结束
结果是我想要的html.erb
<%= method_name(@posts)%>
我如何才能使其工作?您可以将此代码移动到一些html中。当您想使用它时,只需调用render方法
<%= render 'html_file' %>
您可以将此代码移动到某些html中。当您想使用它时,只需调用render方法
<%= render 'html_file' %>
use partials use partials是的,但是@posts变量将在不同的页面上更改,我希望避免复制粘贴代码5到6次。如果我想在一页上改变一些东西,它必须在每一页上都改变。所以你推荐的方法对我不起作用。你可以尝试这样做:def method\u name(params)@posts=params;呈现“html_文件”;结束
是,但是@posts变量将在不同的页面上更改,我希望避免复制粘贴代码5到6次。如果我想在一页上改变一些东西,它必须在每一页上都改变。所以你推荐的方法对我不起作用。你可以尝试这样做:def method\u name(params)@posts=params;呈现“html_文件”;结束