我正在建立一个基本上是一个小型内容管理系统的网站。(从某种意义上说,用户将能够动态更改网站的大部分内容)
在我的 rails 应用程序中,我有两个模型,一个类别和一个子类别。一个Category有很多Subcategories,一个Subcategory属于一个Category。
每个子类别都有一个位置字段,指示它在类别下的显示位置。
按表单创建子类别时,我希望用户可以选择从数据库中所有类别的列表中选择类别(我工作得很好)。然后,我希望根据该类别中当前可用的职位来更新职位字段(一个下拉框)。
我目前在我的应用程序控制器中跟踪子类别的可用位置的想法是:
def subcategory_count(subcategory)
category = subcategory.category
@count = category.subcategories.count
end
然后我添加+1,@count
这样它就给了我可用的职位,+1。(如果有人有更好的方法,请告诉我。)
我目前正在关注 Ryan Bates 的 railscasts 88 修订版,它是动态选择菜单的修订版。这是我的表格现在的样子。
<%= form_for(@subcategory) do |f| %>
<p>
<%= f.label(:name) %>
<%= f.text_field :name %>
</p>
<p>
<%= f.label(:category_id) %>
<%= f.collection_select :category_id, Category.order(:position), :id, :name, include_blank: true %>
</p>
<p>
<%= f.label :position, "Position" %>
<%= f.grouped_collection_select :position, Category.order(:position), :subcategories, :name, :position, :position%>
</p>
<p>
<%= f.submit("Submit") %>
</p>
<% end %>
这段代码的问题是我需要它显示为一个 int 以便我可以向它添加 +1,否则当数据库中没有子类别时它只会显示空白并且不允许我选择“1”位置.
所以,我需要找到一种方法来更新该字段以显示该类别中的可用职位,但我不知道该怎么做。任何帮助将不胜感激。