I am new to rails and i am trying to learn it I have generated a profile model with controller using :
rails g model Profile twitter:string, about:text, country:string
Now i am trying to associate the User(that is created with devise) with profiles, I have done the profile and user association this way:
User.rb
class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
 :recoverable, :rememberable, :trackable, :validatable
 has_many :posts
 has_many :comments 
 has_one :profile, dependent: :destroy
    has_attached_file :avatar, styles: { medium: "300x300>", thumb: "100x100#" }, default_url: "/images/:style/missing.png"
      validates_attachment_content_type :avatar, content_type:  /\Aimage\/.*\Z/        
    
    endprofile.rb
class Profile < ActiveRecord::Base
 belongs_to :user
endProfilesController.rb
class ProfilesController < ApplicationController
def new
 @profile = Profile.new
end
def create
 @profile = Profile.new(params[:profile].permit(:twitter, :about, :country))
if @profile.save
 redirect_to profile_path
else 
 render 'profile'
end
end
endUsersController.rb
class UsersController < ApplicationController
 def create
 end 
 def index
  
 end
endThe form partial i am trying to render
_profile.html.erb
<%= form_for ([@user, @profile.user_build])  @profile do |f| %>
<%= current_user.name %>
<%= f.text_area:about, label: 'Name' %>
<%= f.text_field :twitter, label: 'Your Twitter' %>
<%= f.text_field :country, label: 'Your Country' %>
<% end %>Now i am getting this error when i go to localhost:3000/profiles/new
    /home/alexandrov/web_development/thedesignable/app/views/partials/_profile.html.erb:1: syntax error, unexpected tIVAR, expecting keyword_end [email protected]_build]) @profile do |f| @output_buffer.safe_a... ... ^ /home/alexandrov/web_development/thedesignable/app/views/partials/_profile.html.erb:7: syntax error, unexpected keyword_ensure, expecting end-of-input
<%= form_for ([@user, @profile.user_build])  @profile do |f| %>
<%= current_user.name %>
<%= f.text_area:about, label: 'Name' %>
<%= f.text_field :twitter, label: 'Your Twitter' %>
<%= f.text_field :country, label: 'Your Country' %>
<% end %>
My routes.rb file looks like this
    Rails.application.routes.draw do
  devise_for :users
  mount Ckeditor::Engine => '/ckeditor'
  get 'pages/home'
  get 'pages/thecompany'
  get 'pages/ourwork'
  get 'pages/plansandpricing'
  get 'pages/tour'
  get 'pages/tutorialsandvideos'
  get 'pages/contact'
  get 'pages/faq'
  get 'pages/tandc'
 resources :posts do
    member do
      get "like", to: "posts#upvote"
      get "dislike", to: "posts#downvote"
    end
    resources :comments
  end
  resources :users
  resources :profiles
  root 'pages#home'
end
I can't get to know what i am doing wrong, also what type of migration do i need.. do i need to do rails g migration AddUserIdToProfile ?
 
                        
I've finally fixed this the other way, I used devise data fields and users "show" view to achieve this. I am now able to get user to sign up and use same data to be fetched in show view.
Everything is working perfectly fine. In case anyone need to know more let me know. I would be glad to help you out.