rails中的列表框 - 编辑表单时数据未显示在列表框中

时间:2011-05-26 10:54:05

标签: ruby-on-rails

如果有人能为我阐明这一点,我将非常感激。

我在Rails应用程序中有一个表单来创建新书。

class Book:
has_many  :lnkbookauts,  :foreign_key => "LSA_BOOK_FK", :dependent => :destroy
has_many  :authors,     :through => :lnkbookauts

class Author:
has_many  :lnkbookauts,  :foreign_key => "LSA_AUT_FK", :dependent => :destroy
has_many  :books,     :through => :lnkbookauts

在new.html.erb表单中,用户可以通过单击显示弹出窗口的按钮来添加作者。用户从该弹出窗口中选择作者,然后单击关闭弹出窗口的按钮,并在我的新书形式的列表框中显示所选的作者姓名。 所有这些都是使用javascript完成的。​​

单击“保存书籍”按钮可将书籍条目与作者一起保存。

问题是当我点击“编辑”按钮时,我希望作者姓名显示在我的编辑表单的列表框中,但不幸的是,目前情况并非如此。

new.html.erb:

<p class="redLink">List of Authors:- <span><select size=5 id="book_author_ids" name="book[author_ids][]"  multiple selected="true"> </select></span>
<br/>
<%=  link_to add authors, new_author_path, :popup => ['new_window_name', 'height=400 px, width=500 px']%>

我的edit.html.erb表单也包含相同的作者代码。

编辑表格中是否缺少某些内容?

1 个答案:

答案 0 :(得分:2)

您需要告诉编辑部分从哪里阅读options的{​​{1}}。尝试将以下内容放在select标记内:

<select>...</select>

(我假设<%= options_from_collection_for_select(@book.authors, "id", "name") %> 是用于构建表单的Book实例,您希望每个@book的{​​{1}}为id选项的字段,Author具有value方法,该方法将提供显示的字符串。)

请参阅here