У меня есть булевское поле, которое называется «сохранено» в моей базе данных. Я хочу переключить это поле, нажав на текстовую ссылку, которая изменяется от «Сохранить» до «Отменить» в зависимости от ситуации, и обновляет таблицу «Клиент» с 0 или 1. Я полагаю, что Javascript может быть способом пойти на это но я недостаточно опыт (пока!) в Javascript, чтобы знать, как его кодировать.Rails: Как переключить булевское поле с точки зрения?
Я отбросил вопрос, чтобы он был короче. Вот мой точный код.
#employers controller
def save_toggle
@matching = Matching.find(params[:id])
if @matching.employer_stars == false
@matching.employer_rejects = false # If saving a match, remove any existing rejection.
end
@matching.employer_stars = [email protected]_stars
@matching.save
render :partial => "save_unsave_buttons", :layout => false
end
#view home.html.erb
<%= render :partial => "save_unsave_buttons", :locals => {:matching => matching} %>
#partial _save_unsave_buttons.html.erb
<div id="save_buttons" class="buttonText"> #latter is just for CSS layout
<% if @matching.employer_stars %>
<%= link_to_remote "Unsave",
:url => {:action => "save_toggle", :id => matching.id},
:update => {:success => "save_buttons", :failure => "Error"} %>
<% else %>
<%= link_to_remote "Save",
:url => {:action => "save_toggle", :id => matching.id},
:update => {:success => "save_buttons", :failure => "Error"} %>
<% end %>
</div>
База данных работает, но текст переключения не переключается. Чтобы @nathanvda: Мне очень жаль, что я испытываю такую боль. Я хочу подтвердить ваш ответ, но я знаю, если я это сделаю, я просто оставлю это на некоторое время, а потом вернусь к нему и снова расстроюсь! Спасибо чувак.
Привет, @nathanvda, спасибо за комментарии. Я обновил свой вопрос выше. – sscirrus
Привет @sscirrus: я обновил свой ответ соответственно. Надеюсь, теперь это ясно? – nathanvda
Привет @nathanvda: Я почти там. Только окончательная ошибка, чтобы пройти мимо - мне нужно было добавить: locals в вызове частичного, чтобы он распознал «соответствие». Но переключатели не работают. Дополнительную информацию см. В моем обновлении. Я дал вам 1+ до сих пор, и спасибо. – sscirrus