현재 로그인 한 사용자가 현재 비교 배열에서보고있는 게시물의 ID를 가지고 있는지 확인하려고합니다. 비교는 Post ID의 일련 화 된 배열을 포함하는 Users 데이터베이스의 필드입니다.값이 배열에 있는지 확인하는 방법을 알아 내려고 시도했습니다.
$key = array_search('USER', $array);
희망이 : 매트
현재 로그인 한 사용자가 현재 비교 배열에서보고있는 게시물의 ID를 가지고 있는지 확인하려고합니다. 비교는 Post ID의 일련 화 된 배열을 포함하는 Users 데이터베이스의 필드입니다.값이 배열에 있는지 확인하는 방법을 알아 내려고 시도했습니다.
$key = array_search('USER', $array);
희망이 : 매트
를 사용하여 배열 검색
<% if User.find(current_user.id).compare.include? @post.id %>
do something
<% else %>
do something else
<% end %>
감사합니다,
이것은 내가 해봤 것들 중 하나이지만 항상 다른 문으로 이동 도와 줘요!
이것은 PHP입니다. -
태그 읽기는 ... 여기에 정답 :
사용 : compare
필드 당신이 그것에 include?
를 호출하기 전에 직렬화 할 필요가 array.include?(value)
.
저는 Ruby 1.8을 사용하고 있다고 생각합니다. String 클래스에는 include?
메서드가 있습니다.
str.include? other_str => true 또는 false
str.include? fixnum => true 또는 false
str에 주어진 문자열 또는 문자가 포함되어 있으면 true를 반환합니다.
str.includes? 11
과 1.8.7을 사용하면 해결할 수 있습니다. 1.9에서
include?
만 문자열 인수 이해 :
str.include를? other_str → true 또는 false
str에 주어진 문자열 또는 문자가 포함되어 있으면 true를 반환합니다.
그래서, 당신은이 작업을 수행 할 때
당신은 문자열로 직렬화 된 형식을 받고 그 문자열에서 Fixnum이라는 찾고있는User.find(current_user.id).compare
. @post.id
이 직렬화 된 데이터의 문자 범위를 벗어날 가능성이 있으므로 include?
이 실패합니다. 직렬화 된 배열을 compare
재정의로 비 직렬화하고 싶을 수도 있습니다. 또는 아래의 SQL 데이터베이스를 사용할 때 배열 데이터를 별도의 테이블에 저장하는 것이 좋습니다.