补魔党 2011-11-01 14:41
浏览 248
已采纳

如何修改edit页面接收到的值

刚接触rails,不知道怎么表述到点子上。
脚手架生成的edit页面显示有多个物品ID的text_field :item_id,我想在打开edit页面时候显示物品名称而不是ID(从另items物品表根据ID查找名称)
attr_accessor :name
def name=(attr)
items = Oa::Item.where('name=?', attr)
if items.size == 0
item = Oa::Item.create(:name=>attr)
self.item_id = item.id
else
self.item_id = items.first.id
end
end
编辑之后总会新建新物品。。。

  • 写回答

2条回答 默认 最新

  • cutdeer 2011-11-03 09:47
    关注

    首先,你的了解一下REST, [quote]http://guides.rubyonrails.org/v2.3.11/getting_started.html#rest[/quote]

    简单的讲一下你没有修改前的流程.
    当你打开edit页面时,会生成一个form,如果你的model是Post,那么form的url应该是/posts/1,这个1是被编辑元素的id,还会在form表单生成一下隐藏的字段_method,它的值是put,到服务器处理时,这个请求是当作一个put请求,而不是post请求.
    提交到,到控制器的update方法,update方法首先根据id查找到Post,再更新其属性.

    你要显示什么是改view,而不是改modle

    我觉得你应该把这本书的示例先做做

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退