Я не уверен, что я делаю это правильно. У меня есть действие, которое я хотел бы скопировать, создать и сохранить новый объект, если пользователь вошел в систему, или перенаправить, если они не вошли в систему. Я не использую форму здесь, потому что я использую стилизованную кнопку с изображение, которое выглядит следующим образом:Маршрут Rails, который обновляет или перенаправляет
<a href="/lists/add/<%= @list.id %>" class="button">
<span class="add_list">Learn these words</span>
</a>
и действие выглядит следующим образом:
def add
if is_logged_in?
list = logged_in_user.copy_list(params[:id])
if list.save
flash[:notice] = "This list is now in your stash."
redirect_to stash_zoom_nav_quiz_path(list, "zoomout", "new", "quizoff")
else
flash[:notice] = "There was a problem adding this list."
redirect_to :back
end
else
redirect_to :controller => "users", :action => "signup_and_login", :list_id => params[:id]
end
end
map.resources :lists, :collection => {:share => :get, :share_callback => :get, :add => :put}
Я добавил эту акцию как: положить в моих маршрутах, и я не уверен, если это право или если другой материал - это правильный способ даже сделать это в этом отношении. Любая помощь приветствуется.
Просто из-за любопытства, что было бы отрицательным побочным эффектом неправильной маркировки членов как коллекций? – TenJack
Также спасибо за помощь, я не знал, что вы можете создать блок с link_to! – TenJack
Одна вещь, я думал, что должен использовать метод POST здесь. B/c. Я создаю новую запись, однако, если я использую POST или PUT, я получаю ошибку маршрутизации «ActionController :: UnknownAction». Кажется, GET - единственный метод, что слова, это хорошо? – TenJack