Je voulais créer une application de publication d'articles avec Rails, et quand j'ai présenté Scaffold pour couper la procédure, je suis tombé sur la connexion des messages et des utilisateurs, alors j'ai partagé mes connaissances Si vous voulez en savoir plus, veuillez consulter ce document
Tout d'abord, générez une fonction de publication avec Scaffold. Incroyablement facile. db: migrer N'oubliez pas
$ rails g scaffold Post content:string
$ db:migrate
devise Reportez-vous à cet article. Très facile à comprendre
app/models/user.rb
class User < ApplicationRecord
#Ajoutez ce qui suit.N'oubliez pas le pluriel s
has_many :posts, dependent: :destroy
end
app/models/post.rb
class Tip < ApplicationRecord
#Ajoutez ce qui suit.Pour être prudent, assurez-vous que les messages vides sont rejetés
belongs_to :user
validates :content, presence: true
end
$ rails g migration add_user_id_to_posts user_id:integer
$ rails db:migrate
*** Ceci complète le lien entre le modèle User et le modèle Post en termes de mécanisme ***
app/controllers/posts_controller.rb
private
# Use callbacks to share common setup or constraints between actions.
def set_post
@post = Post.find(params[:id])
end
# Only allow a list of trusted parameters through.
def post_params
params.require(:post).permit(:content)
end
end
Modifiez le code ci-dessus généré automatiquement par Scaffold comme suit.
app/controllers/posts_controller.rb
private
# Use callbacks to share common setup or constraints between actions.
def set_post
@post = Post.find(params[:id])
end
# Only allow a list of trusted parameters through.
def post_params
params.require(:post).permit(:content).merge(user_id: current_user.id)
end
end
Ceci termine. Lançons-le, allez sur localhost: 3000 / posts et post! ‼