【发布时间】:2012-02-11 06:12:43
【问题描述】:
我正在构建一个基本上是一个小型内容管理系统的网站。 (从某种意义上说,用户将能够动态更改网站的大部分内容)
在我的 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" 位置。
所以,我需要找到一种方法来更新该字段以显示该类别中的可用职位,但我不知道该怎么做。任何帮助将不胜感激。
【问题讨论】:
标签: jquery ruby-on-rails ajax forms railscasts