我可以使用<%= tag%>在React-Rails中?

时间:2018-02-02 07:25:13

标签: ruby-on-rails reactjs react-rails

我有一个问题。我正在使用react-rails制作表单。我可以使用<%= tag%>在React-Rails中调用数据库中的数据?

我试过这样的事情,但它没有用。

<input class="form-control" type="text" name="user[phone]" id="user_phone" defaultValue=<%= user.email %>  />

谢谢。

1 个答案:

答案 0 :(得分:1)

不,那是不可能做到的。 React Components内部无法访问Rails框架。 React-Rails框架用于什么,是在视图模板中安装组件的便捷方式,如下所示:

<%= react_component("MyComponent", { data: "that", becomes: "properties" }) %>

并且还能够预渲染ReactComponent服务器端(需要服务器上的NodeJS引擎),以便立即向最终用户显示组件结果,而无需等待加载所有javascript资源

如果要使用Rails记录中的数据,则必须将该信息作为属性传递给已安装的组件,然后您可以像访问任何其他React属性一样访问它们。

举例:

<%= react_component("UserComponent", { email: @user.email, phone: @user.phone }) %>

然后Component看起来像这样:

class UserComponent extends Component {

  static propTypes = {
    email: PropTypes.string,
    phone: PropTypes.string,
  }

  render() {
    const { email, phone } = this.props;

    return (
      <div>
        <input
          className="form-control"
          type="text"
          name="user[email]"
          id="user_email"
          defaultValue={ email }
        />
        <input
          className="form-control"
          type="text"
          name="user[phone]"
          id="user_phone"
          defaultValue={ phone }
        />
      </div>
    );
  }