2012-01-14 5 views
0

각 사용자에 대한 알림 레코드가 들어있는 notices 모델이 있습니다. 각 notice 레코드는 알림 메시지가있는 텍스트 필드 인 message을 포함합니다. 이러한 메시지는 다음과 같습니다.레일 - 텍스트 필드에 하이퍼 링크를 포함하는 방법

"#{current_user.username} liked your photo '#{@photo.name}." 

위 예제에서 사용자와 사진도 해당 사용자와 사진에 대한 하이퍼 링크가되도록하겠습니다. 여기

새로운 like이 생성되는 notice를 생성 내 likes_controller에서 미리보기입니다 :

class LikesController < ApplicationController 

    def create 
    @photo = Photo.find(params[:id]) 
    @like = Like.new(:photo_id => @photo.id, :user_id => current_user.id) 

    if @like.save 
     @notice = Notice.new(:user_id => @photo.user_id, :message => "#{current_user.username} liked your photo '#{@photo.name}' 
    end 

내가 메시지의 링크를 포함 할 수있는 방법에 대한 어떤 생각; 이게 가능한가? 감사.

+1

http://stackoverflow.com/questions/1332013/what-approach-do-you-take-for-embedding-links-in-flash-messages 이것은 방법입니다. 나는 그것을 좋아하지만 그것이 효과가 있는지 확신하지 못한다. "컨트롤러에서 도우미 포함"을 검색 할 수도 있습니다. – Robin

+0

감사합니다. Robin, 거기에 대한 첫 번째 대답은 저를위한 속임수입니다. 나는 더 깨끗한 방법을 원했지만 지금은 효과가있다. –

답변

2

메시지에 대한 링크를 추가하는 것이 렌더링 문제입니다. 제 의견으로는, 당신은 메시지를 너무 빨리 렌더링하고 있습니다, 나는 그것을 뷰에서 렌더링 할 것입니다.

user_id 및 like_id가 포함되도록 알림 모델을 변경하는 경우 뷰에서 알림 텍스트를 렌더링 할 수 있습니다 (필요하다면 나중에 텍스트를 현지화 할 수도 있음).

보기에서 렌더링을 사용하면 표준 link_to 도우미를 사용하여 링크를 생성 할 수 있습니다.

관련 문제