AdilA
@AdilA
Нравится кодить, изучаю go c echo

Как прикрепить js файл к экшену если у экшена нету формы?

Есть файл track_activity.js.erb
<% publish_to "/notifications/new" do %>
  $("#activity").append("<%= j render(@activity) %>");
<% end %>

и есть экшн в application_controller.rb
def track_activity(user, trackable, action = params[:action], author = current_user)
    @activity =  Activity.create! user: user, trackable: trackable, action: action, author: author
  end

но у него нет формы он вызывается например при комментировании поста
comment_controller.rb
def create
        @post = Post.find(params[:post_id])
        @comment = @post.comments.build(comment_params)
        @comment.user = current_user
        if @comment.save
            track_activity @post.user, @comment
            redirect_to post_path @post
        else
            render 'new'
        end
    end

и вот вопрос как track_activity.js.erb вызывать всегда когда используется track_activity экшн или какой нибудь альтернативный метод для передачи данных с Private_pub?
  • Вопрос задан
  • 2203 просмотра
Пригласить эксперта
Ответы на вопрос 1
@vsuhachev
Если у вас нет роута до track_activity, то это не action а просто функция, вызывайте ее на здоровье где хотите.

Далее свой js положите в app/viwes/shared c перфиксом _ в имени файла и тоже вызывайте из тех вью из которых нужно. Это называется partial
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы