2012-03-09 4 views
0

특정 사용자가 제품에 대한 관심을 요청한 경우 전자 메일을 보낼 수 있습니다. 내 전자 메일에는 사용자가 가져온 특정 정보가 포함되기를 원하지만 현재로서는 응용 프로그램의 다른 곳에서이 줄이 사용 되더라도 정의되지 않았기 때문에 오류가 발생합니다. 나는 아래의 이메일을 복사 할 것이고 < %%> 사이의 것은 내가 포함시키고 자하는 것이고 누가 올바른 방향으로 나를 가리킬 수 있는지, 그리고 정확하고 그렇지 않은 것이 어떤 것인지 말해 줄 수 있는지 궁금해하고있다. 어떤 도움이라도 훌륭합니다. 보내려는 메시지는 다음과 같습니다.ActionMailer 메시지 배달 내용

Hello <%@user.username%> 

The user <% current_user.username %> has registered an interest in the following product of yours: 

<% @game.game_name %> 
<% @game.console %> 
<% @game.genre %> 

The user <% current_user.usernames %> has the following games for offer: 

<% current_user.game.game_name %> 
<% current_user.game.game_name %> 
<% current_user.game.game_name %> 

To view <% current_user.username %> profile click <% link_to "here", current_user.show %> 
If you wish to contact the user by email then contact the following email <% current_user.email %>. 

나는 희망이 있습니다. 내가 갖고있는 것에 더 많은 통찰력을주기 위해 사용자 정보와 user_id 외래 키가있는 게임 정보가있는 게임 테이블을 포함하는 users 테이블이 있습니다. 사용자는 has_many 게임을 소유하고 게임은 belongs_to 사용자를 갖습니다.

UPDATE

class GameTrade < ActionMailer::Base 
    default :from => "[email protected]" 

    def game_interest(user) 
     @user = user 
     @game = game 
     mail :to => user.email, :subject => "Game Interest" 
    end 
    end 
+0

여기에 메일러 방법을 포함 할 수 있습니까? 당신이 @ 게임을 어떻게 설정하는지보고 싶습니다. –

+0

안녕하세요 Ben, 내 우편물 방법으로 내 게시물을 업데이트했습니다. '@game = game'이라고 적힌 '@user = user'아래에 줄이 있었지만 작동하지 않습니다. – user1222136

+0

맞습니다. 그래서 game_interest 메일러 함수에서'@ game'을 설정하지 않으므로,보기에서 설정되지 않습니다. 메서드 매개 변수로'game'을 전달하거나 다른 방법으로 가져올 수 있습니다 (예 : 앱에서 관계가있는 경우 @ user.game). –

답변

1

http://guides.rubyonrails.org/action_mailer_basics.html에 따르면, 액션 메일러는 "추상 컨트롤러에서 상속",하지만 당신와 ApplicationController에서, 그래서 나는 current_user 정의 할 기대하지 않을 것이다. 또한 user은 어디에서 오는가? 컨트롤러와 관련 뷰와 마찬가지로 일반적으로 메일러에 @user, @game 등과 같은 인스턴스 변수를 정의한 다음 뷰에서 액세스합니다.

이메일을 많이 보내는 경우 비동기 (예 : delayed_job 또는 resque)로 이메일을 보내려고하므로 여기에 current_user을 입력하는 것이 좋습니다. 이 경우 요청/응답주기의 일부가 아니기 때문에 요청을 한 현재 사용자가 없습니다.

+0

내가 입력 할 때 실수로 at를 제외 시켰기 때문에 @user 부분을 업데이트했습니다. 그 부분은 정상적으로 작동하지만 게임 부분이 작동하지 않습니다. 정의되지 않은 메서드 '열의 이름'을 명시하는 오류가 계속 발생하므로 'game_name'등의 메서드가 정의되지 않았습니다. – user1222136

+0

모두 정렬되었습니다. – user1222136