2017-06-12 64 views
1

我想要做的是只更新我的对象的一个​​值。当我自己提供这个值时,我能够做到这一点,但我试图让用户输入他想要的值,然后使用该值更新我的属性。使用update_attributes与用户输入的值

<td><%= text_field(:referent, :titre, size: 20) %> 
<%= link_to(referent.titre, referent_path(referent, "referent[titre]" => "Changed"), :method => :put) %></td> 

现在我只是有它的“改变”的价值和作品它改变了我的属性titre的价值,但我无法弄清楚如何从text_field取值,并把它在地方的“更改”

这是我update方法

def update 
    @referents = Referent.find(params[:id]) 
    if @referents.update_attributes(referent_params) 
    end 
end 

回答

2

它看起来并不像你所提交的表单结果,而是链接到另一个页面,并设置参数有关的URL滴度。试试这个:

<%=form_for @referents do |f| %> 
<%=f.label :titre%> 
<%=f.text_field :titre, size: 20%> 
<%=f.submit%> 
+0

完美的作品,太感谢你了:d – CNuts

+1

来阐述为什么你不能弄清楚如何将“改变”的值更改为文本框的值:你最终什么具有非动态的硬HTML。您可以保持相同的设置,而是使用JS在链接中更新该参数,但我完全建议您不要这样做。 form_for @object是修改模型数据的'rails'方法。当你有机会的时候,你应该检查platformatec中的simple_form,它们将轨道形式提升到一个水平。 – toastytheog