[ROR]id값을 넘길때의 질문입니다.
-
현재 posts/show/1 페이지에서 create버튼을 눌러, 새로운 글을 생성하려고 합니다.
넘어가는 인자에 1을 넘기고 싶습니다. 1을 어떻게 하면 넘길수있을까요? 예를들어서 히든값으로 넣는다고 하면
<input type="hidden" value="" >이렇게 한다면 value안에 뭘 넣어야 주소뒤에 저 1을 넘길수있을까요?
-
@gamrom 앗 ㅋㅋ 저 @post는 Controller에서 Post 특정 ID에 대한 데이터 정보를 가진 변수라고 이해해주세요..ㅎ
예
### app/controllers/posts_controller.rb def new @post = Post.find(params[:id] end ### app/views/new.html.erb ## http://.../posts/new/1 ... (내용 생략) ... <%= link_to "글 쓰기", new_post_path(@post.id), method: "post" %>
-
@김철민 @post 가 뭔가요?
-
@김철민
헉 4번 Controller 코드 잘못썼습니다.. 수정이 안돼서 다시 쓸게요..### app/controllers/posts_controller.rb ## http://.../posts/create/2 def create Post.create(title: "어쩌고저쩌고", content: "어쩌고저쩌고", parent_id: params[:parent_post_id]) end
막 이런형식으로 쓰는게 어떨까 싶기도?..
이제 여기서 관건은 부모 post와 자식post에 대해 기반을 좀 만들어야 하는게 관건이네요..- 위 예시 코드를 보실 땐
id값이 넘어가는 것을 중심
으로 봐주세요.
- 위 예시 코드를 보실 땐
-
input type="hidden
방식도 하나의 방법이 될 수 있긴 하지만, 개발자도구에서 parameter 변조를 할 수 있다는 문제점이 있습니다.개인적으로 저는 라우터 규칙을 통해 넘기는게 좋을 것 같다고 생각합니다.
- new : 새로운 게시글에 대해 사용자가 내용을 작성하는 페이지
- create : 새로운 내용을 DB에 저장시키는 역할 담당
- routes.rb
### config/routes.rb get 'posts/new/:parent_post_id' post 'posts/create/:parent_post_id'
- views/show.html.erb
### app/views/show.html.erb ## http://.../posts/show/1 ... (내용 생략) ... <%= link_to "새 글 쓰기", new_post_path(@post.id) %>
- view/new.html.erb
### app/views/new.html.erb ## http://.../posts/new/1 ... (내용 생략) ... <%= link_to "글 쓰기", new_post_path(@post.id), method: "post" %>
- controllers/posts_controller.rb
### app/controllers/posts_controller.rb ## http://.../posts/create/2 def create if params[:parent_post_id] Post.create(title: "어쩌고저쩌고", content: "어쩌고저쩌고", parent_id: params[:parent_post_id]) end
-
아뇨 전혀 상관없습니다. 현재 주소의 id값만 파라미터로 받을수있으면 돼요!
-
@gamrom 쿼리스트링 말고 라우트 파라미터로 넘기고 싶은건가요?