Почему я получаю ошибку? (синтаксическая ошибка, неожиданное '=', ожидаемое завершение) - PullRequest
0 голосов
/ 06 апреля 2020

Это ошибки, которые я получаю:

синтаксическая ошибка, неожиданный '=', ожидаемый конец @ subscripting.send (name) = false ^

Здесь мой код:

Просмотр

<% if @subscripting.send(service.name) == true %>
    <p>done</p>
    <p>password<%= service.password %></p>
    <%= link_to "cancel", cancel_path(service_name: service.name), :method => :post %>
<% else %>

контроллер

def cancel
    name = params[:service_name]
    @subscripting = Subscripting.find_by(user_id: @current_user.id)
    @subscripting.send(name) = false
end

Большое спасибо за ответ и помощь.

1 Ответ

0 голосов
/ 06 апреля 2020

При использовании Object.send вы передаете аргументы методу в качестве вторичных аргументов. См. Документацию https://ruby-doc.org/core-2.7.1/Object.html#method -i-send

Вместо этого попробуйте:

def cancel
  name = params[:service_name]
  @subscripting = Subscripting.find_by(user_id: @current_user.id)
  @subscripting.send(name, false)
end    

Но если параметры поступают из какого-то пользовательского ввода, это может быть опасно, и вам следует рассмотрите возможность использования Сильные параметры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...