Sinatra를 사용하여 만든 작은 웹 응용 프로그램을 사용하고 Slim 템플릿을 사용합니다. 내 functions.rb
파일에 $locations
이라는 해시를 정의했으며 해시 값을 반환하는 함수를 사용하려고합니다. 여기에 내가 무엇을 가지고 :Sinatra 및 Slim return Ruby 함수
# functions.rb
$locations = Hash[
'wa' => Hash[
'capital' => 'Olympia'
],
'or' => Hash[
'capital' => 'Salem'
]
]
def foobar
$locations.each do |key, value|
$locations[key]['capital']
end
end
내 슬림 파일 렌더링
/ layout.slim
div#capitals = foobar
페이지는 수도의 ID와 사업부가 있지만 내용은 괄호로 인쇄 단지 전체 해시입니다. each do
의 내부를 puts $locations[key]['capital']
으로 변경하고 명령 줄에서이 기능을 실행하면 완벽하게 작동합니다. Sinatra에서 어떻게 작동합니까?
기본적으로, 내가 대신 루비이 PHP 스크립트를 달성하고 싶다 (내 스크립트 어디에서나 함수를 호출 할 수 있어야하고, 그것이 <div>
태그를 인쇄이) : 루프에서
<?php
$locations = array(
'wa' => array(
'capital' => 'Olympia'
),
'or' => array(
'capital' => 'Salem'
)
);
function foobar($array) {
foreach ($array as $key => $value) {
echo "<div>" . $array[$key]['capital'] . "</div>";
}
}
foobar($locations);
Ruby의 변수 접두사로 '$'는 (는) 전역 변수 *를 의미하며 이는 사용하지 않는 것이 좋습니다. 이것을 'LOCATIONS'와 같은 상수로 선언 해보십시오. – tadman
@tadman이 의견에 감사드립니다. Ruby의 변수에 대해 더 많이 연구하게되었으므로 코드를 개선 할 수있었습니다. –