我希望索引页面中有一些选项卡。
每个选项卡都应为食物模型呈现不同的类别。
选项卡工作正常,但具有静态内容。
我有2张桌子:
Foods, Categories
我的食物表中有一列:category_id。
我的关联是:
Food has_one category, and Categories has_many foods.
因此,在单击选项卡之一时,必须传递category_id,以便它知道要呈现的内容。
我不知道该如何表达自己的观点(也许是一个范围?)……这是我第一次这样做。
这是选项卡之一的代码:
<ul class="accordion-tabs">
<li class="tab-header-and-content">
<a href="#" class="is-active tab-link">Entrantes</a>
<div class="tab-content row">
<% @foods.by_category(params[1]).each do |food| %>
<%= render "food_card" %>
<% end %>
</div>
</li>
我试图在每个选项卡中手动传递参数,但是我不知道是否需要AJAX或其他东西。请帮忙!
更新资料
我的食品管理员
def index
@addictfood = Addictfood.last
@food = Food.last
@foods = Food.all
@category = Category.find params[:id]
respond_to do |format|
format.html
format.json { render json: @category.foods.to_json }
end
end
我的索引视图(食品)
<ul class="accordion-tabs">
<div class="categories">
<li class="tab-header-and-content">
<% @categories.each do |tab| %>
<%= link_to tab.name, category_show_path(tab), class: "tab-link" %>
<% end %>
</li>
</div>
</ul>
</article>
<script>
$(".categories").on("click", "a", function() {
$.ajax({
url: $(this).attr("href"),
dataType: "json",
success: function(data) {
$(".category").html(data)
}
});
});
</script>
错误
Started GET "/foods" for 127.0.0.1 at 2014-07-02 20:41:53 +0200
Processing by FoodsController#index as HTML
Addictfood Load (0.3ms) SELECT "addictfoods".* FROM "addictfoods" ORDER BY "addictfoods"."id" DESC LIMIT 1
Food Load (0.3ms) SELECT "foods".* FROM "foods" ORDER BY "foods"."id" DESC LIMIT 1
Completed 404 Not Found in 4ms
ActiveRecord::RecordNotFound (Couldn't find Category without an ID):
app/controllers/foods_controller.rb:7:in `index'
最佳答案
如果每种食物只有一个类别,则应使用belongs_to类别关联。
在类别中,您可以将其保留为has_many食物。
在类别控制器的显示视图中,您可以像这样拉食物:
<% @category.foods.each do |food| %>
<%= food.title %>
<% end %>
关于javascript - 我是否需要Ajax或其他东西在选项卡中放入不同的erb内容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24527684/