Это действительно не относится к вашим личным скриптам, но поскольку вы цитируете beets
, обратите внимание, что также можно автоматизировать это действие, когда вы распространяете свои пакеты, благодаря setuptools entry_point . Поэтому, если вы распространяете пакет, такой как myModule
, и хотите, чтобы функция main_function ()
была доступна, набрав mymodulescript
в консоли, вы, вероятно, добавили бы что-то вроде этого в файле setup.py
:
setup (# ваши другие аргументы .. entry_points = {'console_scripts': ['mymodulescript = myModule: main_function' ]})
Вам нужна форма для этого, а не только кнопка
<%= form_tag add_school_user_path(@user), method: put do -%>
<%= hidden_field_tag :school_id, @school.id -%>
<%= submit_tag 'Add school' -%>
<%- end -%>
, вы не указали код контекста, возможно, @user и @school не являются настоящими именами переменных, но вы можете получить идея из этого
Это старый Q, но, тем не менее, для полноты. Вам необязательно нужна форма для простого формального представления с помощью кнопки / ссылки. Вы можете полагаться на jquery-ujs и data-params .
<%= link_to add_school_user_path(@user), class: "btn btn-xs btn-primary",
title: "Add school",
data: {remote: true, confirm: 'Are you sure?', method: 'put',
params: {user: {schoold_id: @school.id}}} do %>
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
Add school…
<% end %>
Обратите внимание, что вы хотите иметь метод school_params
в своем контроллер, подобный params.require(:user).permit(:school_id)
Вам нужно передать весь хеш в вызов .update_attributes
.
Предпочтительно вы поместите school_id
внутри user
, чтобы он выглядел как
# params[:user] = { school_id: 1 }
@user.update_attributes(params[:user])
Или вы могли бы вручную ввести идентификатор школы
@user.update_attributes(school_id: params[:school_id])
Или, еще лучше, подтвердите связь
@user.school = School.find(params[:school_id]
Путь, который вы хотите, -
user_add_school_path(@user, school_id: 1)
<%= button_to "Add School", add_school_user_path(:user), :method => "put" %>
, похоже, не работает. Разве я не хочу проходить: пользователь? Не знаю, почему это не работает.
– winston
2 February 2014 в 19:23
add_school_user_path
, вы, вероятно, хотите что-то вроде add_school_user_path(id: 1, school_id: 1)
– OneChillDude
2 February 2014 в 19:26
No route matches {:action=>"add_school", :controller=>"users", :school_id=>1, :id=>nil}
. Не уверен, почему он не может найти идентификатор
– winston
2 February 2014 в 23:53
school_id: 1, id: 1
– OneChillDude
3 February 2014 в 01:31