拥有属于用户的发票模型,以及将用户关联为特定角色或多个角色的用户表:
class CreateInvoices < ActiveRecord::Migration
def self.up
create_table :invoices do |t|
t.string :po_number
t.datetime :invoice_date
t.datetime :date_received
t.datetime :date_approved
t.text :clerk_note
t.integer :clerk_id
t.integer :approver_id
t.text :approver_note
end
end
class Invoice < ActiveRecord::Base
belongs_to :user
end
class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :first_name
t.string :last_name
t.string :username
t.string :email
t.boolean :account_clerk
t.boolean :approver
t.boolean :admin
end
end
class User < ActiveRecord::Base
has_many :invoices
end
在发票记录中,如何根据用户模型中设置的角色分配clerk_id和approver_id?每张发票都有一名职员和审批人,但两人都是用户。
同样,如何将clerk_note分配给clerk_id,将approver_note分配给approver_id?我假设在这种情况下,我可以引用current_user,因为登录的用户将是发出注释的用户,对吗?
我不确定这叫什么,所以在我的谷歌搜索中,我不知道该找什么...提前感谢你的帮助。
答案 0 :(得分:0)
要使用当前模型回答原始问题,您可以创建视图以根据用户角色显示不同字段(这假定登录用户位于名为@user的实例变量中)。
<% if (@user.approver) then %>
<%= f.text_area :approver_note %>
<% else %>
<%= f.text_area :clerk_note %>
<% end %>
然后在您的控制器中,您可以根据登录用户再次设置职员ID或审批者ID的值。
if (@user.approver) then
@invoice.approver_id = @user.id
else
@invoice.clerk_id = @user.id
end