This is my first question.
I am studying at Ruby on rails
When I try to look at the page after doing rails, I get the following error.
I would appreciate it if you could tell me the solution.
Error Name
NoMethodError in ProjectController#show
undefined method `users' for #<Project:0x007f9ef37c73a8>
app/controllers/project.controller.rb
class ProjectController<ApplicationController
before_action:authenticate_user!, only:[:list]
def index
@projects=Project.all
end
def show
@project=Project.find (params[:id])
@[email protected](:tag)
@joined=false
if!current_user.nil?&!current_user.projects.nil?
@joined=current_user.projects.include?(@project)
end
@[email protected]('created_at desc').first(10)
end
def list
if!current_user.nil?
@projects=current_user.projects
end
end
end
app/admin/project.rb
ActiveAdmin.register Project do
permit_params:name, :content, :price, :image
show do | t |
attributes_table do
row —name
row —Content
row —Price
row —image do
project.image?image_tag(project.image.url, height:'100')—content_tag(:span, "No photo yet")
end
end
end
form —html=>{:enctype=>"multipart/form-data"}do | f |
f.inputs do
f.input:name
f.input:content
f.input:price
f.input:image,hint:f.project.image?image_tag(project.image.url,height:'100')—content_tag(:span, "Upload JPG/PNG/GIF image")
end
f.actions
end
end
app/model/project.rb
class Project <ActiveRecord::Base
extend FriendlyId
friendly_id:name, use:[:slugged,:finders]
has_many —tasks
values:name,presence:true,length:{maximum:50}
values:content, presence:true, length:{maximum:500}
values:price,presence:true,numberality:{only_integer:true}
has_attached_file: image, :styles=>{:medium=>"680x300>", :thumb=>"170x75>"}
values_attachment_content_type: image, :content_type=>/\Aimage\/.*\Z/
def shortname
name.length>25?name [0..25]+"...":name
end
end
app/project/views/project/show.html.rb
ruby-on-rails ruby
Probably in app/model/project.rb
has_many:users
is probably missing.
It would be good if you could confirm the meaning and usage of association such as belongs_to
and has_many
.
© 2024 OneMinuteCode. All rights reserved.