0
に私はワークフローのuser.emailを表示するには、単純な関連付けを使用しようとしていますではありません。私がいることを実行するとシンプルな関連はコンソールで動作しますが、アプリケーション
def mail_notify_engineering
@workflow = Workflow.where("Title like ?", "Engineer")
@workflow = @workflow.first
$temp1 = @workflow
$temp2 = @workflow.user.email
は、私は、コンソールでコマンドを実行する場合、動作しているようです、しかし
NoMethodError in ApplicationController#notify_engineering
undefined method `email' for #<Workflow:0xb1ba8b8>
Rails.root: C:/Users/cmendla/RubymineProjects/product_development
Application Trace | Framework Trace | Full Trace
app/mailers/application_mailer.rb:37:in `mail_notify_engineering'
app/controllers/application_controller.rb:19:in `notify_engineering'
Request
Parameters:
None
を取得します。
>> @workflow = Workflow.where("Title like ?", "Engineer")
Workflow Load (3.0ms) EXEC sp_executesql N'SELECT [pd].[workflows].* FROM [pd].[workflows] WHERE (Title like N''Engineer'')'
#<ActiveRecord::Relation [#<Workflow id: 3, title: "Engineer", user_id: 1, created_at: "2016-09-02 18:28:29", updated_at: "2016-09-02 18:28:29">]>
>> @workflow = @workflow.first
#<Workflow id: 3, title: "Engineer", user_id: 1, created_at: "2016-09-02 18:28:29", updated_at: "2016-09-02 18:28:29">
>> $temp2 = @workflow.user.email
"[email protected]"
User Load (2.0ms) EXEC sp_executesql N'SELECT [pd].[users].* FROM [pd].[users] WHERE [pd].[users].[id] = @0 ORDER BY [pd].[users].[id] ASC OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY', N'@0 int', @0 = 1 [["id", 1]]
二つのモデルがあります:アプリとして実行したときに、それが機能しない理由協会は、コンソールで動作する場合
class Workflow < ActiveRecord::Base
belongs_to :user, :class_name => 'Workflow', foreign_key: 'user_id'
validates_presence_of :title
validates_presence_of :user_id
validates_uniqueness_of :title, :scope => :user_id
end
class User < ActiveRecord::Base
has_many :workflows
テーブルは
TABLE pd.workflows (
id INT IDENTITY NOT NULL,
title NVARCHAR(4000) NULL,
[user_id] INT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
CONSTRAINT PK__workflow__3213E83FA1246A13 PRIMARY KEY (id)
)
TABLE tl.users (
id INT IDENTITY NOT NULL,
login VARCHAR(50) NULL,
group_strings TEXT NULL,
name VARCHAR(50) NULL,
ou_strings VARCHAR(150) NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
email VARCHAR(50) NULL,
signature TEXT NULL,
operating_system VARCHAR(50) NULL,
notes_path VARCHAR(50) NULL,
client VARCHAR(50) NULL,
outlook_path VARCHAR(150) NULL,
CONSTRAINT PK_users PRIMARY KEY (id)
)
ですか?