나는 book을 사용하여 Ruby on Rails를 배우고 있습니다. here에서 두 번째 운동을 계속합니다.부분적으로 경로를 사용하는 변수
내 양식 부분 app/views/users/_form.html.erb
은 다음과 같습니다
<% provide(:title, "Edit user") %>
<% provide(:button_text, "Save changes") %>
<% provide(:url, user_path) %>
<h1>Update your profile</h1>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<%= render 'form' %>
<div class="gravatar_edit">
<%= gravatar_for @user %>
<a href="http://gravatar.com/emails" target="_blank" rel="noopener noreferrer">Change</a>
</div>
</div>
</div>
:
<% provide(:title, 'Sign up') %>
<% provide(:button_text, 'Create my account') %>
<% provide(:path, signup_path) %>
<h1>Sign Up</h1>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<%= render 'form' %>
</div>
</div>
내 편집보기 app/views/users/edit.html.erb
이 있습니다 :
<%= form_for(@user, url: yield(:path)) do |f| %>
<%= render 'shared/error_messages', object: @user %>
<%= f.label :name %>
<%= f.text_field :name, class: 'form-control' %>
<%= f.label :email %>
<%= f.email_field :email, class: 'form-control' %>
<%= f.label :password %>
<%= f.password_field :password, class: 'form-control' %>
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation, class: 'form-control' %>
<%= f.submit yield(:button_text), class: "btn btn-primary" %>
<% end %>
부분과 내 가입보기 app/views/users/new.html.erb
이있다 내 문제는 내가 어떤 올바른 경로인지 모르겠다. r 편집보기 나는 와 함께 설정해야 방법을 제공합니다.
signup_path 가입보기에는 문제가 없습니다. 내가 편집보기를 시도하는 것입니다 : (현재 코드 예제에서)
user_path
edit_user_path
edit_user_path(@user)
현재 라우팅 오류 나는 아래
(사용자 개체를 전달할 수) 있어 :
아래 사용자와 관련된 가능한 경로 것을 :
<%= form_for(@user) do |f| %>
<%= render 'shared/error_messages', object: @user %>
<%= f.label :name %>
<%= f.text_field :name, class: 'form-control' %>
<%= f.label :email %>
<%= f.email_field :email, class: 'form-control' %>
<%= f.label :password %>
<%= f.password_field :password, class: 'form-control' %>
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation, class: 'form-control' %>
<%= f.submit yield(:button_text), class: "btn btn-primary" %>
<% end %>
:
예를 들어 내가 URL을 제공하기 위해 편집보기를 제공 사용하지 않는 경우는, 여기처럼 잘 작동
하지만 partials를 사용하여 코드를 리팩터링하는 것이므로 가입보기 URL을 제공해야합니다. routes.rb
:
Rails.application.routes.draw do
get 'sessions/new'
get 'users/new'
root 'static_pages#home'
get '/help', to: 'static_pages#help'
get '/about', to: 'static_pages#about'
get '/contact', to: 'static_pages#contact'
get '/signup', to: 'users#new'
post '/signup', to: 'users#create'
get '/login', to: 'sessions#new'
post '/login', to: 'sessions#create'
delete '/logout', to: 'sessions#destroy'
resources :users
end
당신이 부분을 게시 할 수있는이 내 작업 솔루션입니다 사용자의 경로를 설정하는 routes.rb 파일의 위치는? – mrzasa
활성 레코드와 함께 레일과 그 양식이 어떻게 작동 하는지를 살펴볼 필요가 있습니다. 모형으로 비계 컨트롤러를 생성하십시오. 당신은 무의식적으로 빨리 배울 것입니다. –
는'routes.rb' @mrzasa – ronatory