복붙노트

[RUBY-ON-RAILS] 루비 레일의 인스턴스 변수 대 심볼 (form_for)

RUBY-ON-RAILS

루비 레일의 인스턴스 변수 대 심볼 (form_for)

나는 레일에 루비에 새로 온 사람과 맥 OSX에 버전 2.3과 함께 일하고 있습니다. 난 비계가 생성하는 동일한 기능을 만들려고하지만, 내 자신하고있다. 나는 "포스트"컨트롤러, 뷰와 모델을 만들었다. 포스트 컨트롤러, 나는 다음이있다 :

class PostController < ApplicationController
  def index
  end

  def new
    @post = Post.new
  end
end

new.html.erb에, 나는 다음이있다 :

<h1>New Post</h1>

<% form_for :post do |f| %>

    <%= f.text_field :title %>

<% end %>

내가 사용을, 비계 생성 된 코드에 form_for 헬퍼의 인스턴스 변수 @post을 그 나타났습니다. 왜 그들이 기호를 통과하는 경우 비계 생성 된 형태로 인스턴스 변수를 사용합니까 : 기호가 경로의 설정을 변경해야하면서 form_for의 게시물, 똑같은 일을?

대단히 감사합니다, Yuval 교수

해결법

  1. ==============================

    1.당신이 기호를 사용하는 경우 :이 생성 게시

    당신이 기호를 사용하는 경우 :이 생성 게시

    <form action="/posts" method="post">
    

    당신은 인스턴스 @post을 사용하는 경우

    @post가 Post.new을 = 당신은 얻을 것이다

    <form action="/posts/create" class="new_account" id="new_account" method="post">
    

    @post가 Post.find (1) = 당신은 얻을 것이다

    <form action="/posts/update" class="edit_account" id="edit_account_1" method="post">
    <input name="_method" type="hidden" value="put">
    

    당신은 다른 새에 대한 형태와 편집 별거 아니하지만 더 likey이있는 경우보다 새와 편집 형태는 근처에 동일 될 것되거나

    인스턴스 변수를 사용하는 경우 그래서 당신은 _form에 모든 형태의 코드를 넣을 수 있습니다 @post 단지 부분을 호출하고 당신이 기존 레코드 새 레코드에 통과하거나 경우에 따라 나머지를 처리합니다

  2. ==============================

    2.한 가지 가능한 이유는 형태가 기존 게시물을 업데이트 할 양식에 대한 코드와 더 유사 새 게시물을 작성하기위한 코드를 만드는 것입니다.

    한 가지 가능한 이유는 형태가 기존 게시물을 업데이트 할 양식에 대한 코드와 더 유사 새 게시물을 작성하기위한 코드를 만드는 것입니다.

  3. from https://stackoverflow.com/questions/957204/instance-variable-vs-symbol-in-ruby-on-rails-form-for by cc-by-sa and MIT license