홈>
사용자 표에 언급 된 사용자의 주소로 이메일을 보내기 위해 사용자 쇼 페이지에 버튼을 추가하려고했습니다. 초대 이메일 보내기를 클릭하면정의되지 않은 메소드 '이메일' nil : NilClass의 경우. 내가 겪고있는 실수를 알려주세요.
routes.rb
get 'send_invitation_email', to: 'users#invitation_confirmation'
invitation_confirmation.text.erb
Hi,
Thank you for setting up an account. Please click on the link in that email to start using the system.
<%= edit_password_reset_url(@user.reset_token, email: @user.email) %>
user_mailer.rb
def invitation_confirmation(user)
@user = user
mail(:to => "<#{user.email}>", subject: "Notification")
end
users_controller.rb
def invitation_confirmation
@user = User.find(params[:id])
UserMailer.invitation_confirmation(@user).deliver
flash[:notice] = "Invitation email has been sent."
redirect_to user_path(@user)
end
show.html.erb
<% if logged_in? && current_user.admin? || current_user.superadmin? %>
<%= link_to "Send Invitation Email", send_invitation_email_path(@user), class: "btn btn-xs btn-primary" %>
<% end %>
업데이트
mail(:to => "<#{user.email}>", subject: "Notification")
- 답변 # 1
- 답변 # 2
이것을 시도하십시오
def invitation_confirmation(user) mail(to: user.email, subject: "Notification") end
- 답변 # 3
@user 객체가 null이 아닌 경우 show.html.erb 코드를 다음과 같이 변경하십시오 :
<% if logged_in? && current_user.admin? || current_user.superadmin? %> <%= link_to "Send Invitation Email", send_invitation_email_path(id: @user.id), class: "btn btn-xs btn-primary" %> <% end %>
- 답변 # 4
def invitation_confirmation @user = User.find(params[:format]) **@user.create_reset_digest** UserMailer.invitation_confirmation(@user).deliver flash[:notice] = "Invitation email has been sent." redirect_to user_path(@user) end
굵은 글씨로 실수했습니다. 나는 _reset_digest를 만들지 않았다. 지금 일하고 있습니다. 모두 감사합니다.
관련 질문
- ERB 대신 HAML을 사용하면 테스트가 실패합니다
- 첨부 파일 Fixtures Minitest
- 값이 문자열 일 때 테이블 속성의 합계
- Rails : Rake Cucumber를 실행할 때 "경고 : 이미 일정한 JSON :: Version"을 얻는 이유는 무엇입니까?
- Rails 모델 및 인터랙터를 사용하여 사용자 관계를 삭제합니다
- overriding const_missing은 dev-dev 환경에서`nameError 초기화되지 않은 constant를 반환합니다
- JSON 객체를 다른 필드로 포함하고 각 개체를 주문하고 주문하는 방법
- Ruby의 Ruby의 문자열 객체를 배열로 변환하는 방법은 무엇입니까?
- 조치 컨트롤러 매개 변수가 RSPEC의 여러 업데이트 요청에 새로 고침되지 않음
- 활성 레code를 통과 할 때 SQL 원시 쿼리 오류가 발생합니다
이 오류는 UserMailer.invitation_confirmation 메소드 내부에 사용자가 없음을 나타냅니다.
시도 :