Rails 新手依旧问题不断

匿名 · 2011年12月08日 · 最后由 huacnlee 回复于 2012年02月04日 · 2542 次阅读

不知道要怎么描述了。

我在编辑和添加文章页的_form.html.erb 里,each 了分类。

这样是为了实现添加和修改文章的时候可以选择分类。

代码如下

<%= form_for(@post) do |f| %>
......... 
      <% @catalog.each do |catalog| %>
            <%= radio_button("post", "catalog_id", catalog.id) %><%= catalog.name %>
      <% end %>
......... 
<% end %>

这样似乎是没有问题的,就是在编辑的时候才有问题。 应该是 input 里没有 checked 的原因。

<input type="radio" name="post[catalog_id] value="1" >
<input type="radio" name="post[catalog_id] value="2" >
<input type="radio" name="post[catalog_id] value="3" >

编辑文章的时候怎么把 checked 加在正确的 input 里。

匿名 #2 2011年12月08日

问题是他的 checked 是怎么加上去的呀。

<%= radio_button("post", "catalog_id", catalog.id, :checked=> true) %>

你的意思是这个么?

匿名 #4 2011年12月08日

#3 楼 @linjunpop = = 我确实不知道如何描述。。。你说对了一半。

post 有 catalog_id 属性吗?我是指@post.catalog_id

匿名 #6 2011年12月08日

#5 楼 @zfben 当然有呀。。。我在表里建立了。。。我现在把 input[radio] 改成了 input[text] 了。自己直接填 ID 好了。哈哈。

匿名 #7 2011年12月08日

自己去写 if else 这样的语句根本行不通。。。我是比较 id == id。编辑没什么问题,就是新建就会出错,无法获得 ID。真不知道这些是怎么处理的。暂时还是用 input[text] 来输入 ID 选择分类。我真是太有才了~~~

#7 楼 @KennX 你这问题最好找个群什么的问题,在这问不实时,效率低

用 simple_form 吧,这个问题会变得很简单

<%= simple_form_for @post do |f| %>
  <%= f.input :category, :collection => Category.collect { |t| [t.name,t.id] }, :as => :radio %>
<% end %>
需要 登录 后方可回复, 如果你还没有账号请 注册新账号