В приведенном ниже примере я использовал: =MAX(0,MIN($O$2,H2)-MAX($O$1,G2))
и отформатирован как [мм].
Извините меня за перевод в рабочее состояние этого только теперь, но я просто нашел, что время изучило мой код снова. Я думаю, что решил свою проблему следующим JavaScript (мой application.js в направляющих):
jQuery(document).ready(function($) {
$(".edit_textfield").each( function(i) {
$(this).editable("update", {
type : 'textarea',
rows : 8,
name : $(this).attr('name'),
cancel : 'Cancel',
submit : 'OK',
indicator : "<img src='../images/spinner.gif' />",
tooltip : 'Double-click to edit...'
})
});
});
Это работает, если Ваши URL Контроллера являются УСПОКОИТЕЛЬНЫМИ.
Вот то, как я обеспечил электричеством JEditable (1.6.2) с помощью моего успокоительного приложения (2.2.2) для направляющих:
Встроенная форма:
<div id="email_name"><%= h( @email.name ) %></div>
$('#email_name').editable( <%= email_path(@email).to_json %>, {
name: 'email[name]',
method: 'PUT',
submitdata: {
authenticity_token: <%= form_authenticity_token.to_json %>,
wants: 'name'
}
});
Контроллер:
def update
@email = Email.find( params[:id] )
@email.update_attributes!( params[:email )
respond_to do |format|
format.js
end
end
update.js.erb
<%=
case params[:wants]
when 'name' then h( @email.name )
# add other attributes if you have more inline forms for this model
else ''
end
%>
Это немного неуклюже с тем оператором переключения. Было бы хорошо, если JEditable просто сохранил бы отправленное значение по умолчанию, если бы запрос ajax был успешен, и ничто не было возвращено.
При включении .js файлов в HTML затем не, но если у Вас есть js, встроенный в Вашем шаблоне представления затем да, Вы можете.
У Вас могут также быть .erb.js файлы, которые являются представлениями js.
Что-либо возможно :D
Я "m не уверенный я полностью понимаю проблему, которую Вы имеете, но я думаю, что Вы могли поместить что-то вроде этого в свой JavaScript:
<%= url_for(@post) %>
Это зависит, как Вы структурируете свой JavaScript, как Вам организовали Ваши файлы и т.д...
Если вы, контроллеры, немного менее спокойны. В частности, если у вас есть действие для обновления определенного поля, это тоже работает. Ключ передает токен аутентификации.
index.html.erb
<span id="my_edit"><%= foo.bar %></span>
<script type="text/javascript">
$(document).ready(function() {
$("#my_edit").editable('<%= url_for(:action => "update_bar",
:id => foo) %>',
{
method: 'PUT',
cancel : 'Cancel',
submit : 'OK',
indicator : "<img src='../images/spinner.gif' />",
tooltip : 'Double-click to edit...',
submitdata: {
authenticity_token: <%= form_authenticity_token.to_json %>,
}
}
});
</script>
Упрощенный контроллер, который не оправдывает бездействие:
foo_controller.rb
def update_bar
foo = Foo.find(params[:id])
bar= params[:value]
// insert justifiable code here
foo.save
render :text=>params[:value]
end
(Работает с Rails 2.2.2 и 2.3.2 с Jeditable 1.7.0 и jRails 0.4, хотя jRails здесь не особо взаимодействует, кроме как включает в себя jQuery 1.5)