Witam!
Mam model Post wygenerowany automatycznie za pomoca Scaffold, do tego mam Users stworzone za pomoca Devise w Rails Admin.
Chcialbym aby tworzony post byl przypisany do usera.
W post.rb mam
belongs_to: user
W user.rb
has_many: posts
Mam tez w tabeli posts dodana kolumne user_id.
Aby stworzyc post nalezy sie zalogowac chcialbym aby podczas tworzenia posta w momencie klikniecia new zostal przekazywany parametr user_id w odpowiednie miejsce. Niestety nie wiem jak to zrobic.
Co nalezy dodac do kontrolera
def new
@post = Post.new
...
end
def create
@post = Post.new(params[:ad])
...
end
W jaki sposob odczytac id usera z devise (RailsAdmin) podczas zalogowania?
Czy lepiej stworzyc osobny widok do tworzenia postow czy tez robic to z panelu admina?
Podczepię się pod ten temat.
Też gem devise. Pytanie jak zabezpieczyć całość tak, żeby user mógł edytować tylko swoje posty?
Wiadomo w indexie można zrobić tak: @posts = current_user.posts.all i po sprawie. W edycji można zrobić tak: @posts = current_user.posts.find(params[:id]) i jak ktoś będzie chciał edytowac nie swojego posta to pokaże, że nie ma takiego posta.
Pytanie, można to jakoś lepiej i ładniej zrobić? Nie wiem, może zabezpieczyć jakoś całość?