В проекте рельсов у меня есть две сущности: пользователи и учреждения, они имеют отношение многие ко многим.
Представления для них настроены для создания новых пользователей и учреждений, но я хочу иметь другое представление для связывания двух.
В консоли rails все, что мне нужно сделать, это
myuser.institutions << the_institution_i_just_created
Контроллер может выполнять некоторую часть работы, но как мне обрабатывать заявки и формы?Я хочу использовать поле выбора, чтобы ввод был ограничен учреждениями, которые уже существуют.
<select id="institution_selection" name="institution_sel">
<% selections = []
Institution.all.each do |institution|
pair = [institution.name, institution.id]
selections.concat([pair])
end
%>
<%= options_for_select(selections) %>
</select>
Итак, вкратце, вопрос в том, как мне сопоставить это представление с объектом, чтобы в контроллере я мог добавить его к отношению?
Решение было:
Хорошо, так что это решение, которое я придумал, я уверен, что есть лучший способ сделать это, и я продолжу изучать его, но, по крайней мере, я получил что-то близкое к тому, к чему я стремилсядля
def test
if !session[:user]
redirect_to users_path, notice: "Please login first"
end
if params[:institution]
@user = User.find(session[:user])
@institution = Institution.find(params[:institution][:id])
@user.institutions << @institution
redirect_to @user, notice: "Institution was successfully added "
end
end
и для просмотра
<%= form_tag("/users/test", :method => "post") do %>
<%= collection_select :institution, :id, Institution.all, :id, :name %>
<%= submit_tag("Search") %>
<% end %>