我有一個Ruby on Rails的系統下拉菜單中使用數據,由此我有表:用戶,UserAccounts,帳戶和電子郵件與架構:Ruby on Rails的:顯示從另一個模型
User (id, firstname, surname, password)
UserAccount (user_id, account_id)
Account (id, emailaddress, port, domain)
Email (id, account_id, subject, message)
我我試圖做的是在創建新電子郵件時,我希望所有用戶的帳戶'emailaddress
變量顯示在視圖中的下拉菜單中,當用戶單擊保存時,我希望將account_id
保存在電子郵件表中。
在一刻起,我可以在下拉菜單中的views/emails/_form.html.erb
與下面的代碼顯示account_id
:
<%= f.collection_select :account_id, Useraccount.where(user_id: session[:user_id]), :account_id, :account_id %>
但我不能改變這個顯示的電子郵件地址,我曾嘗試以下代碼可以這樣做:
<%= f.collection_select :account_id, Useraccount.where(user_id: session[:user_id]), :account_id, :Account.where(id: account_id).email %>
但是,這給我的錯誤undefined local variable or method
ACCOUNT_ID」爲#<#:0x72cde60>`
任何人都可以請幫忙嗎?
我對整個表格的代碼是:
<%= form_for @email do |f| %>
<% if @email.errors.any? %>
<div id="error_explanation">
<h2>
<%= pluralize(@email.errors.count, "error") %> prohibited this email from being saved:
</h2>
<ul>
<% @email.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<%= f.collection_select :account_id, Useraccount.where(user_id: session[:user_id]), :account_id, :Account.where(id: account_id).email %>
<p>
<%= f.label :subject %><br>
<%= f.text_field :subject %>
</p>
<p>
<%= f.label :message %><br>
<%= f.text_area :message %>
</p>
<p>
<%= f.submit %>
</p>
感謝您的建議,我的班級名稱不是複數,我只是傾向於多元化討論中的數據庫表名,以便更容易地看到它們包含許多記錄。我已經上傳了其餘的視圖,但我不覺得它會告訴你很多。 –