[Rails] Rails의 모델, controller 및attr_accessor 정보
입문
루비에서 attr_accessor는 클래스 밖에서 실례 변수를 읽고 쓸 수 있습니다.이를 바탕으로 Rails 모델에서 attr_우리는accessor 방법이 설명하는 변수의 운동과 주의하는 부분을 고려했다.(개인적인 견해인데 잘못된 부분을 지적하면 좋겠다)
카탈로그
모델 클래스와 컨트롤러의 관계
모델은 데이터베이스의 설계도와 같이 데이터베이스의 정보를 기록했다.Rails 컨트롤러는 모델에 정의된 클래스, 변수 및 메서드를 호출할 수 있습니다.
예를 들어 보드 모델에boards 컨트롤러가 존재하는 경우
①board.rb(모델)
class Board < ApplicationRecord
belongs_to :user
# belongs_to :admin
end
모델에는 Board 클래스가 있습니다.Board 클래스는 ApplicationRecord를 계승하여 ApplicationRecord에서 정의한 모든 방법을 사용할 수 있습니다.
②boards_controller.rb(컨트롤러)class BoardsController < ApplicationController
(前略)
def create
board = Board.create(post_params)
end
(後略)
end
컨트롤러는 모델에 설명된 클래스'class Board'를 사용할 수 있습니다.보드 클래스는 프로그램 기록을 계승하기 때문에 프로그램 기록의 방법create를 호출할 수 있습니다.예를 들어 계승 응용 프로그램 기록을 사용하는create를 사용하여 파라미터(post_params)를 보드 변수에 저장합니다.이렇게 하면 Rails 컨트롤러는 모델의 클래스와 방법을 사용할 수 있습니다.
attr_accessor 방법과 클래스 이외의 의미
attr_accessor는 클래스 밖에서 클래스 실례 변수를 읽고 내보낼 수 있는 방법입니다.여기서 말하는'반 밖'은 어디까지입니까?예를 들어 다른 반에서도 읽고 쓸 수 있습니까?실제로 해 보았다.
①attr.rb 파일
class Greeting
attr_accessor :name #を定義
end
class SuperGreeting
def hi
person = Greeting.new
person.name = "Tom" #「オブジェクト名.変数名 =」で代入
puts person.name
end
end
sayname = SuperGreeting.new
sayname.hi
Greeting 클래스의attr_accessor 방법에서 변수를 정의합니다:name.SuperGreeting 클래스의hi 방법으로 Greeting의 실례인person을 생성하고person의name 변수를'Tom'에 기록합니다.그게 사람이야.에서 설명한 대로 해당 매개변수의 값을 수정합니다.결과를 확인하기 위해 SuperGreeting의 실례인 Sayname를 생성하고hi방법을 실행해 보았습니다.
② 결과
종착역attr.rb를 실행하려고 하면 Tom이 출력됩니다.이는attr_accessor 방법의'유외'는 다른 유내도'외'라는 뜻으로 읽고 쓸 수 있다.
attr_accessor에서 설명한 변수가 controller에서 어떤 작용을 하는지
위 내용을 바탕으로 Rails 모델에서 attr_우리는accessor에서 정의한 변수를 컨트롤러에서 읽을 수 있는지 고려했다.결론적으로 말하자면 가능하다.왜냐하면 ① 컨트롤러는 모델 클래스를 사용할 수 있고, ② attr_accessor 방법에 정의된 변수는 다른 클래스 (클래스 제외) 에서도 사용할 수 있기 때문이다.attr_accessor는 rails에서form 대상으로 다음과 같은 방법을 사용할 수 있습니다.(원본 모델 파일 생략)
①sdateboard.rb(모델)
모델에서attr_accessor에서 정의:name,:comment,:date,:time.class SdateBoard
include ActiveModel::Model
include ActiveRecord::AttributeAssignment
attr_accessor :name, :comment, :date, :time
def save
sy = Sdate.create(:date, :time)
Board.create(name: name, comment: comment, sdate_id: sy.id)
end
end
②boards_controller.rb(컨트롤러)
sdateboard.rb모델의 클래스 SdateBoard를 boards_로 설정controller.rb 컨트롤러의create 방법에서 사용합니다.( @sdate_schedule = SdateBoard.new(schedule_parmas)) 및 sdateboard.rb모델의attr_accessor에서 정의한 변수 ":name,:comment,:date,:time"는 컨트롤러 클래스 BoardsController의 schedule_파라미터 방법에서 사용합니다.(params.reuqire(:sdateboard).permit(:name, :comment, :date, :time))class BoardsController < ApplicationController
(前略)
def create
@sdate_schedule = SdateBoard.new(schedule_params)
@sdate_schedule.save
redirect_to new_schedule_path
end
private
def schedule_params
params.require(:sdateboard).permit(:name, :comment, :date, :time)
end
(後略)
end
이상, 모델과 컨트롤러의 관계와attr_현재accessor에 정의된 변수의 이동을 볼 수 있습니다.
웹 페이지 정보
https://techacademy.jp/magazine/41659
https://pikawaka.com/ruby/attr_reader
http://pikawaka.com/ruby/attr_accessor
Reference
이 문제에 관하여([Rails] Rails의 모델, controller 및attr_accessor 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/redrabbit1104/items/b3a526c123d1a64ac669
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
class Board < ApplicationRecord
belongs_to :user
# belongs_to :admin
end
class BoardsController < ApplicationController
(前略)
def create
board = Board.create(post_params)
end
(後略)
end
attr_accessor는 클래스 밖에서 클래스 실례 변수를 읽고 내보낼 수 있는 방법입니다.여기서 말하는'반 밖'은 어디까지입니까?예를 들어 다른 반에서도 읽고 쓸 수 있습니까?실제로 해 보았다.
①attr.rb 파일
class Greeting
attr_accessor :name #を定義
end
class SuperGreeting
def hi
person = Greeting.new
person.name = "Tom" #「オブジェクト名.変数名 =」で代入
puts person.name
end
end
sayname = SuperGreeting.new
sayname.hi
Greeting 클래스의attr_accessor 방법에서 변수를 정의합니다:name.SuperGreeting 클래스의hi 방법으로 Greeting의 실례인person을 생성하고person의name 변수를'Tom'에 기록합니다.그게 사람이야.에서 설명한 대로 해당 매개변수의 값을 수정합니다.결과를 확인하기 위해 SuperGreeting의 실례인 Sayname를 생성하고hi방법을 실행해 보았습니다.② 결과
종착역attr.rb를 실행하려고 하면 Tom이 출력됩니다.이는attr_accessor 방법의'유외'는 다른 유내도'외'라는 뜻으로 읽고 쓸 수 있다.
attr_accessor에서 설명한 변수가 controller에서 어떤 작용을 하는지
위 내용을 바탕으로 Rails 모델에서 attr_우리는accessor에서 정의한 변수를 컨트롤러에서 읽을 수 있는지 고려했다.결론적으로 말하자면 가능하다.왜냐하면 ① 컨트롤러는 모델 클래스를 사용할 수 있고, ② attr_accessor 방법에 정의된 변수는 다른 클래스 (클래스 제외) 에서도 사용할 수 있기 때문이다.attr_accessor는 rails에서form 대상으로 다음과 같은 방법을 사용할 수 있습니다.(원본 모델 파일 생략)
①sdateboard.rb(모델)
모델에서attr_accessor에서 정의:name,:comment,:date,:time.class SdateBoard
include ActiveModel::Model
include ActiveRecord::AttributeAssignment
attr_accessor :name, :comment, :date, :time
def save
sy = Sdate.create(:date, :time)
Board.create(name: name, comment: comment, sdate_id: sy.id)
end
end
②boards_controller.rb(컨트롤러)
sdateboard.rb모델의 클래스 SdateBoard를 boards_로 설정controller.rb 컨트롤러의create 방법에서 사용합니다.( @sdate_schedule = SdateBoard.new(schedule_parmas)) 및 sdateboard.rb모델의attr_accessor에서 정의한 변수 ":name,:comment,:date,:time"는 컨트롤러 클래스 BoardsController의 schedule_파라미터 방법에서 사용합니다.(params.reuqire(:sdateboard).permit(:name, :comment, :date, :time))class BoardsController < ApplicationController
(前略)
def create
@sdate_schedule = SdateBoard.new(schedule_params)
@sdate_schedule.save
redirect_to new_schedule_path
end
private
def schedule_params
params.require(:sdateboard).permit(:name, :comment, :date, :time)
end
(後略)
end
이상, 모델과 컨트롤러의 관계와attr_현재accessor에 정의된 변수의 이동을 볼 수 있습니다.
웹 페이지 정보
https://techacademy.jp/magazine/41659
https://pikawaka.com/ruby/attr_reader
http://pikawaka.com/ruby/attr_accessor
Reference
이 문제에 관하여([Rails] Rails의 모델, controller 및attr_accessor 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/redrabbit1104/items/b3a526c123d1a64ac669
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
class SdateBoard
include ActiveModel::Model
include ActiveRecord::AttributeAssignment
attr_accessor :name, :comment, :date, :time
def save
sy = Sdate.create(:date, :time)
Board.create(name: name, comment: comment, sdate_id: sy.id)
end
end
class BoardsController < ApplicationController
(前略)
def create
@sdate_schedule = SdateBoard.new(schedule_params)
@sdate_schedule.save
redirect_to new_schedule_path
end
private
def schedule_params
params.require(:sdateboard).permit(:name, :comment, :date, :time)
end
(後略)
end
https://techacademy.jp/magazine/41659
https://pikawaka.com/ruby/attr_reader
http://pikawaka.com/ruby/attr_accessor
Reference
이 문제에 관하여([Rails] Rails의 모델, controller 및attr_accessor 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/redrabbit1104/items/b3a526c123d1a64ac669텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)