如何在 Rails 中为带有单选按钮的帖子分配一个类别?
Posted
技术标签:
【中文标题】如何在 Rails 中为带有单选按钮的帖子分配一个类别?【英文标题】:How to assign one category to a post with radio buttons, in Rails? 【发布时间】:2010-10-14 23:30:33 【问题描述】:新手,第一次发帖。
我只花了大约 4 个小时试图通过单选按钮将一个类别分配给一个帖子(尝试一个常规的博客内容),但无济于事。该关联运行良好,最终我设法让它与选择菜单一起使用,但由于某种原因,单选按钮似乎根本不适合这个。
我真的不喜欢为此使用选择菜单,因为我只有 4 个类别,并且必须单击两次才能选择一个类别,因为单击太多。所以我真的很想改用单选按钮。
我查看了the other question on the subject 并毫无意义地搜索了网络,但它只帮助我得到了更多不同的错误:未定义的方法、AssociationTypeMismatch、0 的 category_ids 等等。所以我今天放弃了,决定创建一个帐户,看看是否有人可以破解这个。任何帮助将不胜感激。
谢谢。
【问题讨论】:
我什至没有它了。我尝试了所有可能的组合,我可以从表单助手 API 中找出并没有任何效果,所以我完全摆脱了它。原来这正是问题所在;该解决方案看起来与那里所说的完全不同。 【参考方案1】:我们开始吧。在RailsCasts Episode 17 Ryan 中使用 habtm 和复选框来做这种事情。我将其修改为使用 belongs_to 和单选按钮。感谢您的练习。
> script/generate scaffold category category_name:string
> script/generate scaffold post post_name:string, post_content:text, category_id:integer
后模型
Class Post < ActiveRecord::Base
belongs_to :category
End
发布创建视图(删除 category_id 的默认文本框)
...
<p>
<% for category in Categories.find(:all) %>
<div>
<%= radio_button_tag "post[category_id]", category.id, @post.category_id == category.id %><%= category.name %>
</div>
<% end %>
</p>
【讨论】:
现在我很尴尬,但很感激!我实际上是这样尝试的,但不知何故让它出错了。但大多数情况下,我太着迷于通过遵循表单助手 API 中的 radio_button 语法来让事情正常工作,这看起来不像那样,但我认为这是官方的方式。谢谢! 哦,只有一件事:最后一位不是category.category_name
,而是category.name
。只是想我会把它留给后代。
@Baby Diego:您可以在我的脚本/生成中看到我的类别模型具有属性 category_name。您可能刚刚在模型中创建了 name 作为属性...这正是我在编写它时测试的代码...
您好,当使用“for category in Categories.find(:all)”时,您将如何确保默认情况下选择其中一个单选按钮为“true”???以上是关于如何在 Rails 中为带有单选按钮的帖子分配一个类别?的主要内容,如果未能解决你的问题,请参考以下文章