2013-03-15 4 views
0

Итак, я попытался найти (много :() и не смогли найти ничего, чтобы помочьRails: метод в представлении

Я чувствую, что это то, что я делал раньше, но я. просто не могу понять это

Я установил камень (Recommendable, яй!), что позволяет мне доступ к связке методов. (?):

user.like (фильм) => true

В представлении я попытался положить <% = link_to "Like", @ user.like (@movie)%> ... однако, это, кажется, на самом деле просто запустить @ user.like (@movie) при загрузке страницы ... автоматически настраивает этого пользователя на этот фильм.

Что мне не хватает? : \

Большое спасибо заранее!

+2

Не хотите ли ссылаться на определенный URL-адрес, где соответствующий контроллер обрабатывает логику? Псевдокод -> 'user_like_url (@user, @movie)', который разрешает, например, '/ someone/like/life-of-pi'? –

+0

Вам не хватает реализации кода Ruby/Rails _ на сервере_, когда запрос получен и обработан контроллером/действием и визуализируется представление. Я думаю, что вы хотите, чтобы исполняемый код выполнялся (какое-то поведение), когда пользователь нажимает на ссылку _ в браузере (или на стороне клиента), например, что сказал @JustusRomijn. –

ответ

0

Вы хотите иметь LikesController для таких вещей, как я предполагаю. И тогда вы можете удаленную ссылку на создание действия и внутри этого создать действие, которое на самом деле может сделать то, как вы хочешь сделать:

class LikesController < ApplicationController 
    def create 
    # assuming you have some method to get you the current_user 
    # and assuming you just want to like movies 
    movie = Movie.find_by_id(params[:id]) 
    current_user.like(movie) if movie 
    # maybe check for success and return some meaningfull message 
    end 
end 

, а затем внутри вида вы можете сделать:

<%= link_to "Like", likes_path(@movie), remote: true %> 

Этого должен вызвать подобное.

Не забудьте создать маршрут в routes.rb для LikesController.

Вы всегда должны помнить о том, что для действия, которое пользователь должен иметь, требуется действие в контроллере. Представление всегда просто представляет определенное состояние пользователю с возможностью принятия мер.

Смежные вопросы