유용한 추가 정보 : 그래서 이것이 문제가 될 수있는 decent_exposure 보석을 사용하고 있습니다 - 아래의 코드 수정 :각 메소드에서 문자열을 반환하는 Ruby 객체의 배열입니다. 왜?
query string ?utf8=✓&filter_tag_names=test
<% get_filter_tags.each do |ft| %>
<%= ft.name %>
<% end %>
: 내가보기에이를 호출 할 때
이
expose(:get_filter_tags) do
if params[:filter_tag_names]
filter_tag_names = Array(params[:filter_tag_names].split(" "))
filter_tags = Array.new
filter_tag_names.each do |f|
t = Tag.find_by_name(f)
filter_tags << t
end
end
end
그래서, 뭔가 재미가 일을
오류 메시지 : "test"에 대한 이름이 정의되지 않았습니다. 문자열
왜이 태그 객체가 아닌 문자열에서 이름을 호출하려고합니까? 내가 넣으면 너무 분명 내가 문자열 대신 객체의 배열을 얻기 위해 뭔가를 잘못하고있는 중이 야,보기에 따라 한 filter_tag_names 항목을 다음 내가 이름을 잘 호출 할 수 있습니다 위의 같은
def getfiltertag
Tag.find_by_name(params[:filter_tag_names])
end
#view
<%= getfiltertag.name %>
query string: ?utf8=✓&filter=test
을 돌출했다. 나는 단지 무엇을 모른다. 어떤 제안?
당신은'filter_tag_names = Array (params [: filter_tags] .split (""))'를'filter_tag_names = params [: filter_tags] .split ("")' – rubish
으로 변경하고 싶을 것입니다. INDEX 메서드에 넣지 만 DECENT EXPOSURE 블록에는 넣지 않으면 어쨌든 Chuck이 아래에있는 더 좋은 방법을 게시했습니다. –