hexawing 2009-04-27 17:49
浏览 162
已采纳

ROR里,一个页面校验另一个模型中字段的值怎么弄啊?

虽然我知道这样做本身就不科学,但又不知道正确的做法,于是只好这样凑合来。
现在的问题是如果我留空提交,只会出来Rails的报错页面,而不会出现我写的<%= error_messages_for "xxx" %>这样的结果。
请问到底应该怎样做呢?

  • 写回答

2条回答 默认 最新

  • horace_lee 2009-04-27 21:05
    关注

    虽然,不是太懂你的问题。 :wink:

    但是,我可以在一个view里,点击一次提交,验证两个model的属性。当然,提交的form也得,是写到两个model里了。

    不能同时提示错误信息,但都能提示,效果如下:

    [img]/upload/attachment/98394/ad07ae1a-c493-31a4-85f6-90251059023c.png[/img]

    [img]/upload/attachment/98398/815131ca-13bf-3b8c-8fae-3deb0d9e9fc3.png[/img]

    相关代码如下:
    view:
    [code="ruby"]<%= error_messages_for 'product' %>
    <%= error_messages_for 'user' %>

    Title

    Name:

    <%= text_field 'user', 'name' %>

    Description

    Image url

    Price

    <!--[eoform:product]-->[/code]

    外层:
    [code="ruby"]<% form_tag :action => 'create' do %>
    <%= render :partial => 'form' %>
    <%= submit_tag "Create" %>
    <% end %>[/code]

    conroller:
    [code="ruby"] def create
    @user = User.new(params[:user])
    @product = Product.new(params[:product])
    if @product.save && @user.save #这里有逻辑错误,如果product成功,user失败,product会保存。这部分留给你吧,毕竟你的问题不是这个。
    flash[:notice] = 'Product was successfully created.'
    redirect_to :action => 'list'
    else
    render :action => 'new'
    end
    end[/code]

    model:
    [code="ruby"]
    class User < ActiveRecord::Base

    validates_presence_of :name
    validates_uniqueness_of :name

    attr_accessor :password_confirmation
    validates_confirmation_of :password

    #....

    class Product < ActiveRecord::Base

    has_many :orders, :through => :line_items

    has_many :line_items

    def self.find_products_for_sale
    find(:all, :order => "title")
    end

    validates_presence_of :title, :description, :image_url
    [/code]
    希望有帮助吧

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

报告相同问题?

悬赏问题

  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害