루비 공부 방법...

fixme의 이미지

파이썬 하다가 루비에 관심이 생겨서
http://www.tutorialspoint.com/ruby/ruby_tutorial.pdf <<이정도 읽고
이제 문법은 어느정도 됫구나 하고. 레일스를 봤습니다..
그런데 이건 뭐... 안그래도 루비 문법이 참 애매햇엇는데.. 코드 이해가 잘 안되네요..
가령:
validates :title, :presence => true,
:length => { :minimum => 5 } ??? 이런거

그래서 문법에 대해 더 공부해야 할 필요성을 느꼇슴..
루비 문법 자세히 나온 설명돼있는 사이트 없나요, 아니면 책이라도 추천점여

fixme의 이미지

그리고 xxx.yyy 이러면 이게 함수를 호출하는건지 그냥 변수인지 구별이 안가서 돌겟네요..
그냥 알아서 맞춰바야되는건가요?

neocoin의 이미지

pdf 내용을 모두 이해하시면 읽는데 무리가 없는 수준입니다.
내용도 무척 짧네요.

저는 http://www.ruby-doc.org/docs/ProgrammingRuby/ 로 좀 더 긴 문서로 익혔습니다.
참고하세요.

fixme의 이미지

validates :title, :presence => true,
:length => { :minimum => 5 }

그럼 이건 하나의 심볼과 두개의 해쉬를 인수로 받은 함수가 맞나요?

neocoin의 이미지

아니요.

https://github.com/rails/rails/blob/91f8cf22647e2e102c0897e88faec049f606843f/activemodel/lib/active_model/validations/validates.rb#L81

어느 정도 유연하게 코딩되어 있는겁니다. 함수 주석이나 이를 파싱한 메뉴얼을 참고하세요.

http://api.rubyonrails.org/

fixme의 이미지

링크 이상..
근데 '유연하게 코딩'한다는건 처음 들어보는데 그게 가능한가요;;;

neocoin의 이미지

흠. 위에 링크가 깨져서 소스를 읽지 못하신거 같군요.

https://github.com/rails/rails/blob/91f8cf22647e2e102c0897e88faec049f606843f/activemodel/lib/active_model/validations/validates.rb#L81

혹은 http://api.rubyonrails.org/ 에서 validates 를 검색하고 하단에 소스보기를 누르시면 됩니다. (일정 시간이 지나면 저 링크가 깨지는 상황도 발생하는거 같습니다. )

유연하게 코딩되어 있다는건 기술 스펙의 용어가 아니라 제가 작성한 문장중에 나온 말일뿐입니다.
궁금하신 부분은 그냥 소스 보세요.

Rails 는 Ruby 의 문법의 자율성을 이용해서, 많은 관습들의 집합으로 프레임웍의 질서를 만들어 두었습니다. 언급하신 validates 도 그중 일부입니다.

저 소스를 따라가기 힘드시면 일단 다른 소스를 먼저 학습하는걸 추천드립니다. Rails 는 쓰기는 쉬운데, 프레임웍 소스를 읽기는 좀 힘듭니다. ;;

마잇의 이미지

문법 참고는 여기가 간단 명료 합니다.

http://web.njit.edu/all_topics/Prog_Lang_Docs/html/ruby/syntax.html

xxx.yyy만 보고는 xxx가 뭔지 알 수 없습니다. yyy라는 메소드를 가진(가지고 있길 기대하는) 오브젝트 입니다.


--
마잇

hyde1004의 이미지

Rails 라면, 아래 두 사이트를 추천드립니다.

Ruby on Rails Tutorial : http://ruby.railstutorial.org/
Rails for Zombies : http://www.codeschool.com/courses/rails-for-zombies

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.