0

背景:

  1. 我有一个 form_for 映射到一个名为 List 的模型。
  2. List 有属性:name、id、receiver_id、assigner_id。
  3. 我希望用户(或列表分配者)能够选择列表接收者。
  4. 我希望分配者输入电子邮件,而不是接收者的 ID。

问题:

  1. 我不知道如何使用表单来接收电子邮件地址,使用该电子邮件地址运行“User.find_by_email(xx).id”查询,然后将返回的 id 分配给列表的 receiver_id 属性。

当前代码:

list_conroller.rb

class ListsController < ApplicationController

   before_filter :current_user

   def new
      @list = List.new
   end

   def create
      @list = List.new(params[:list])
      @list.assigner = @current_user
      #@list.receiver = User.find_by_id(:receiver_id)
      @list.save
      redirect_to @list
   end

   def show
      @list = List.find(params[:id])

   end

   def update

@list = List.find(params[:id])
   end

end

列表\new.html.erb

<%= form_for @list do |f| %>

    <%= f.label :name, 'Name'%>
    <%= f.text_field :name %>

    <%= f.label :receiver_id, 'Receiver ID'%>  
    **I want this to be the e-mail input, rather than the integer id.**
    <%= f.text_field :receiver_id %><br />

    <%= f.submit :submit %>

<% end %>
4

2 回答 2

0

用户创建新列表,并以他为分配者。在那个创建过程中也必须有一个接收器。我做对了吗?

我认为应该从可能的接收者列表中选择接收者(也许是一个选择框?这将取决于可能的接收者的数量,但不想在其中列出 1000 多个用户 - 如果有很多用户你可以做用户键入几个字母时的 ajax 搜索)

然后分配者选择一个用户(以相应id的值作为值),一切都应该没问题。

于 2011-10-02T19:43:49.733 回答
-1

我的问题的答案是“虚拟属性......”

于 2011-10-28T01:31:24.130 回答